Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

2 (Teil-)inhalte aus Tabelle1 und 2 autom. in Tab3 kopieren

Forumthread: 2 (Teil-)inhalte aus Tabelle1 und 2 autom. in Tab3 kopieren

2 (Teil-)inhalte aus Tabelle1 und 2 autom. in Tab3 kopieren
16.10.2024 17:25:49
Klaus Reich
Liebe Herbers, zunächst Tab1 :
die Range Tab 1 hole ich aus Y44 und Y46 via Worksheet_Change ab
' ja, wo san mer denn ? von A ? bis A ?
MsgBox Sheets("Tabelle1").Range("Y44") 'A30
MsgBox Sheets("Tabelle1").Range("Y46") 'A51
MsgBox Sheets("Tabelle1").Range("Y49") 'also 22 Zeilen lang
' nun, H Gates, baue mir bitte die Tab3 ab Adresse A14 aus 1 zusammen !
MsgBox ("A" & Sheets("Tabelle1").Range("Y44") & ":A" & Sheets("Tabelle1").Range("Y46")) 'A30:A51
' Bereich kopieren
Range("A" & Sheets("Tabelle1").Range("Y44") & ":A" & Sheets("Tabelle1").Range("Y46")).Copy
Sheets("Tabelle3").Select 'Tab3 auswählen
' ab hier hakt's :
ActiveSheet.Cells.ClearContents 'und komplett löschen
Range("A14").Select 'in Tabelle 3 nun A$14$ anwählen
ActiveSheet.Paste 'und später das ganze Spiel noch mit B und E aus 1 und auch die Daten Tab2 A, B und E an 3 anhängen
Danke Klaus Reich
Anzeige

9
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: 2 (Teil-)inhalte aus Tabelle1 und 2 autom. in Tab3 kopieren
16.10.2024 19:03:56
Kuwer
Hallo,

mit
ActiveSheet.Cells.ClearContents 'und komplett löschen 
wird die Zwischenablage gelöscht!

Gruß, Uwe
AW: 2 (Teil-)inhalte aus Tabelle1 und 2 autom. in Tab3 kopieren
16.10.2024 20:51:50
Klaus Reich
Danke Kuwer ! Mein Ziel war nicht das Löschen der Zwischenablage. Wie kann ein ActiveSheet.Cells.ClearContents mit der Zwischenablage "korrespondieren" ? Ich suchte vielmehr das Lösche alle Zellen, Einträge, Hintergründe und Formatierunge, ... und das Blatt zu erhalten. Best Regards, Klaus Reich
Anzeige
AW: 2 (Teil-)inhalte aus Tabelle1 und 2 autom. in Tab3 kopieren
16.10.2024 20:26:09
Uduuh
Hallo,
teste mal:
Sub kopieren()

Dim lngFirst As Long, lngLast As Long, lngZiel As Long

lngZiel = 14 'ZielZeile
Sheets("Tabelle3").Cells.ClearContents

With Sheets("Tabelle1")
.Range(.Cells(lngFirst, 1), .Cells(lngLast, 1)).Copy Sheets("Tabelle3").Cells(lngZiel, 1) 'A nach A14
.Range(.Cells(lngFirst, 2), .Cells(lngLast, 2)).Copy Sheets("Tabelle3").Cells(lngZiel, 2) 'B nach B14
.Range(.Cells(lngFirst, 5), .Cells(lngLast, 5)).Copy Sheets("Tabelle3").Cells(lngZiel, 5) 'E nach E14
lngZiel = .Cells(Rows.Count, 1).End(xlUp).Row + 1 'neue ZielZeile
End With

With Sheets("Tabelle2")
.Range(.Cells(lngFirst, 1), .Cells(lngLast, 1)).Copy Sheets("Tabelle3").Cells(lngZiel, 1) 'A nach Ax
.Range(.Cells(lngFirst, 2), .Cells(lngLast, 2)).Copy Sheets("Tabelle3").Cells(lngZiel, 2) 'B nach Bx
.Range(.Cells(lngFirst, 5), .Cells(lngLast, 5)).Copy Sheets("Tabelle3").Cells(lngZiel, 5) 'E nach Ex
End With

End Sub


Gruß aus'm Pott
Udo
Anzeige
AW: 2 (Teil-)inhalte aus Tabelle1 und 2 autom. in Tab3 kopieren
16.10.2024 21:27:41
Klaus Reich
Danke Udo, gönne mir bitte noch ein paar Worte - ich möchte doch von den Könnern etwas lernen. Du nimmst, wie ich auch Sheets("Tabelle3").Cells.ClearContents. Dann verwirrst Du mich mit Dingen wie : .Range(.Cells(lngFirst, 1), .Cells(lngLast, 1)).Copy Sheets("Tabelle3").Cells(lngZiel, 1). Was will mir das sagen ? Wo bleiben meine Koordinaten-Angaben Y44, Y46 aus Tab1 und analog auch Tab2, um deren A, B und E in den vorgegebene Grenzen nach Tab 3 ab Zeile 14 zu schaufeln ? Schönen Abend noch, Klaus
Anzeige
AW: 2 (Teil-)inhalte aus Tabelle1 und 2 autom. in Tab3 kopieren
17.10.2024 11:50:21
Uduuh
Hallo,
entschuldige meine Flüchtigkeit.
Muss wohl so aussehen:
Sub kopieren()

Dim lngFirst As Long, lngLast As Long, lngZiel As Long

lngZiel = 14 'ZielZeile
Sheets("Tabelle3").Cells.ClearContents

With Sheets("Tabelle1")
lngFirst = .Cells(44, 25) 'Y44
lngLast = .Cells(46, 25) 'Y46
.Range(.Cells(lngFirst, 1), .Cells(lngLast, 1)).Copy Sheets("Tabelle3").Cells(lngZiel, 1) 'A nach A14
.Range(.Cells(lngFirst, 2), .Cells(lngLast, 2)).Copy Sheets("Tabelle3").Cells(lngZiel, 2) 'B nach B14
.Range(.Cells(lngFirst, 5), .Cells(lngLast, 5)).Copy Sheets("Tabelle3").Cells(lngZiel, 5) 'E nach E14
End With

lngZiel = Sheets("Tabelle3").Cells(Rows.Count, 1).End(xlUp).Row + 1 'neue ZielZeile

With Sheets("Tabelle2")
lngFirst = .Cells(44, 25) 'Y44
lngLast = .Cells(46, 25) 'Y46
.Range(.Cells(lngFirst, 1), .Cells(lngLast, 1)).Copy Sheets("Tabelle3").Cells(lngZiel, 1) 'A nach Ax
.Range(.Cells(lngFirst, 2), .Cells(lngLast, 2)).Copy Sheets("Tabelle3").Cells(lngZiel, 2) 'B nach Bx
.Range(.Cells(lngFirst, 5), .Cells(lngLast, 5)).Copy Sheets("Tabelle3").Cells(lngZiel, 5) 'E nach Ex
End With

End Sub

Gruß aus'm Pott
Udo
Anzeige
AW: 2 (Teil-)inhalte aus Tabelle1 und 2 autom. in Tab3 kopieren
17.10.2024 13:29:00
Klaus Reich
Danke Udo ! Was ich nicht verstanden habe, ist "warum muß ich Variablen, wie lngFirst benutzen ?" . Ich kann doch alle Daten "im Klartext" direkt aus einer der Tabellen abholen. Die sollen doch nur ohne Lücke untereinander nach Tab 3 kopiert werden. Gruß Klaus
AW: 2 (Teil-)inhalte aus Tabelle1 und 2 autom. in Tab3 kopieren
17.10.2024 19:38:19
Uduuh
Hallo,
Du musst keine Variablen benutzen. Mach es wie du willst.

Gruß aus'm Pott
Udo
Anzeige
AW: 2 (Teil-)inhalte aus Tabelle1 und 2 autom. in Tab3 kopieren
18.10.2024 00:41:57
Klaus Reich
Uduuh, mir scheint, Du bist böse, weil ich nicht einsehen mag, mit Kanonen (heißt bekannte Tabellen-Positionen, die ich aus Tabelle1 und 2 auslesen kann und den Beginn Tab3 auch auf A14 festlegen möchte) durch künstliche Variablen zu ersetzen, um aus denen erst wieder die gemeinten Pos für 3 festzulegen. Ich möchte doch einfach etwas von Euch Könnern lernen : sag' mir, erkläre doch bitte, was ich an Deinem letzten Beitrag ändern muß, die Spalten A, B und E (diese kann/sollte in der Tab3 natürlich in C stehen) mit bekannten Zelleninhalten/Werten aus 1 und 2 (vor-)belegen kann. Mein Fernziel war sogar, mich von dem leidigen VBA ala Worksheet_Change zu befreien - eigentlich nicht nötig, wenn die eingebundenen Diagramme 1 und 2 ohne ein "xxx"-Ereignis reagieren wollten. Best regards Klaus
Anzeige
AW: 2 (Teil-)inhalte aus Tabelle1 und 2 autom. in Tab3 kopieren
18.10.2024 01:14:59
Uduuh
Hallo,
ich bin nicht böse. Warum sollte ich?
Warum die Variablen: Der ständige Zugriff auf Zellen verlangsamt den Code nur. Mit den Variablen geht das (in deinem Fall marginal) schneller.
Um E nach C zu kopieren musst du nur das (2x) ändern:
    .Range(.Cells(lngFirst, 5), .Cells(lngLast, 5)).Copy Sheets("Tabelle3").Cells(lngZiel, 3)  'E nach C14

Wenn sowohl in Tabelle1 als auch in Tabelle2 in Y44 und Y46 das gleiche steht, kannst du die erneute Zuweisung von lngFirst und lngLast auch weg lassen.
Dann ergibt sich
Sub kopieren()

Dim lngFirst As Long, lngLast As Long, lngZiel As Long

lngZiel = 14 'ZielZeile
Sheets("Tabelle3").Cells.ClearContents

With Sheets("Tabelle1")
lngFirst = .Cells(44, 25) 'Y44
lngLast = .Cells(46, 25) 'Y46
.Range(.Cells(lngFirst, 1), .Cells(lngLast, 1)).Copy Sheets("Tabelle3").Cells(lngZiel, 1) 'A nach A14
.Range(.Cells(lngFirst, 2), .Cells(lngLast, 2)).Copy Sheets("Tabelle3").Cells(lngZiel, 2) 'B nach B14
.Range(.Cells(lngFirst, 5), .Cells(lngLast, 5)).Copy Sheets("Tabelle3").Cells(lngZiel, 3) 'E nach C14
End With

lngZiel = Sheets("Tabelle3").Cells(Rows.Count, 1).End(xlUp).Row + 1 'neue ZielZeile

With Sheets("Tabelle2")
.Range(.Cells(lngFirst, 1), .Cells(lngLast, 1)).Copy Sheets("Tabelle3").Cells(lngZiel, 1) 'A nach Ax
.Range(.Cells(lngFirst, 2), .Cells(lngLast, 2)).Copy Sheets("Tabelle3").Cells(lngZiel, 2) 'B nach Bx
.Range(.Cells(lngFirst, 5), .Cells(lngLast, 5)).Copy Sheets("Tabelle3").Cells(lngZiel, 3) 'E nach Cx
End With

End Sub


Um dich vollends zu verwirren, eine Alternative:
Sub kopieren2()

Dim lngFirst As Long, lngLast As Long, lngZiel As Long
Dim rngSource As Range, rngZiel As Range

lngZiel = 14 'ZielZeile
Sheets("Tabelle3").Cells.ClearContents
Set rngZiel = Sheets("tabelle3").Cells(lngZiel, 1)

With Sheets("Tabelle1")
lngFirst = .Cells(44, 25) 'Y44
lngLast = .Cells(46, 25) 'Y46
Set rngSource = .Range(.Cells(lngFirst), .Cells(lngLast))
rngSource.Copy rngZiel
rngSource.Offset(, 1).Copy rngZiel.Offset(, 1)
rngSource.Offset(, 4).Copy rngZiel.Offset(, 2)
End With

Set rngZiel = Sheets("tabelle3").Cells(Rows.Count, 1).End(xlUp).Offset(1)

With Sheets("Tabelle2")
Set rngSource = .Range(.Cells(lngFirst), .Cells(lngLast))
rngSource.Copy rngZiel
rngSource.Offset(, 1).Copy rngZiel.Offset(, 1)
rngSource.Offset(, 4).Copy rngZiel.Offset(, 2)
End With

End Sub


Ja, ich weiß, ich bin böse ;-)

Gruß aus'm Pott
Udo
Anzeige

Forumthreads zu verwandten Themen

Anzeige
Anzeige
Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige