2.5k Aufrufe
Gefragt in Tabellenkalkulation von
Hallo zusammen,

bevor ich mein Problem schildere, hier die Ausgangssituation:

In Tabelle 1 habe ich mehrere Zeilen beschrieben.

Diese kopiere ich in Tabelle 3.

Dann habe ich eine Tabelle 2, deren Zeilen ebenso in Tabelle 3 kopiert werden.

Das ganze mit einem Makro aufgenommen ist starr kein Problem.

Nun zu meinem Problem:

Nicht immer ist die Anzahl der beschriebenen Zeilen in den T 1 und 2 gleich; in Tabelle 1 können 10 Zeilen beschrieben sein, in Tabelle 2 fünf Zeilen. Bei nächster Anwendung könnten es 8 und 3 Zeilen sein usw..

Das bedeutet, dass der Abstand zwischen den Zeilen in Tabelle 3 immer wieder varieren kann.

Wie kann ich das nun dynamisch gestalten?

Will keine Zeilen verschwenden, weil ich diese fest reserviere und dann größere Lücken entstehen.

Wer kann mir helfen?

Vielen Dank vorab und viele Grüße

EinNeuerLaie

5 Antworten

0 Punkte
Beantwortet von
Hallo

Sub Kopie()
Application.ScreenUpdating = False
Sheets("Tabelle1").Range("A1:H" & Cells(Rows.Count, 1).End(xlUp).Row).Copy
Sheets("Tabelle3").Cells(Rows.Count, 1).End(xlUp).Offset(1, 0).PasteSpecial xlPasteValues
Sheets("Tabelle2").Range("A1:H" & Cells(Rows.Count, 1).End(xlUp).Row).Copy
Sheets("Tabelle3").Cells(Rows.Count, 1).End(xlUp).Offset(1, 0).PasteSpecial xlPasteValues
Application.CutCopyMode = False
Application.ScreenUpdating = True
End Sub

Die Range A1:H kann verändert werden.

Das Makro ausführen in Tabelle1.

Gruß

fedjo
0 Punkte
Beantwortet von

Hallo fedjo,

das funktioniert schon mal ganz gut.

Wie bekomme ich es aber hin, dass die Datensätze von Tabelle 1 ab / in Zelle F30 (erste blau markierte Zelle) eingefügt werden und die Datensätze von Tabelle 2 ab der Zelle, die als 2. blau gefärbt ist (hier aktuell Zelle F35, würde sich aber durch die Datensätze von Tabelle 1 ja nach unten verschieben)

Anbei eine Grafik zur Veranschaulichung.

Ziel des ganzen UNterfangens: die aktuell als Tabelle 3 beschriebene Tabelle ist eine Art zusammenfassende Protokollseite.

Danke und Viele Grüße

EinNeuerLaie

0 Punkte
Beantwortet von
Hallo,

wenn ich das richtig verstanden habe, dann so:

Sub Kopie()
Application.ScreenUpdating = False
Sheets("Tabelle1").Range("A1:H" & Cells(Rows.Count, 1).End(xlUp).Row).Copy
Sheets("Tabelle3").Range("F65536").End(xlUp).Offset(1, 0).PasteSpecial xlPasteValues
Sheets("Tabelle2").Range("A1:H" & Cells(Rows.Count, 1).End(xlUp).Row).Copy
Sheets("Tabelle3").Range("F65536").End(xlUp).Offset(1, 0).PasteSpecial xlPasteValues
Application.CutCopyMode = False
Application.ScreenUpdating = True
End Sub

In F29 soll aber ein Eintrag vorhanden sein.

Die Range A1:H kann verändert werden.

Das Makro ausführen in Tabelle1.

Gruß

fedjo
0 Punkte
Beantwortet von
Hi fedjo,

vielen Dank.

Funktioniert noch nicht ganz - kannst du mir erklären warum immer F65536 ausgweählt wird und dann Offset(1, 0)?

Und für was steht "Application.ScreenUpdating = True"?

Danke und viele Grüße

EinNeuerLaie
0 Punkte
Beantwortet von
Hallo

Range("F65536").End(xlUp).Offset(1, 0). = Selektiert die erste freie Zelle in der Spalte F

Application.ScreenUpdating = True = Bildschirmaktualisierung eingeschaltet

Gruß

fedjo
...