Beim folgenden Beispiel aus Abb. 2 werden alle gleich strukturierten Tabellen einer Arbeitsmappe auf der ersten Tabelle untereinander zusammengestellt. Diese Aufgabe manuell zu erledigen, wäre sehr zeitintensiv.

Abb. 2: Gleich strukturierte Tabellen zusammenfahren

Sub TabellenKopierenUntereinander()
Dim KBereich As Range
Dim ZBereich As Range
Dim i As Integer
With ActiveWorkbook
 .Worksheets.Add Before:=.Worksheets(1)
 For i = 2 To .Worksheets.Count
  Set KBereich = .Worksheets(i).UsedRange
  Set ZBereich = .Worksheets(1).Cells(Rows.Count, "A").End(xlUp)(2)
  KBereich.Copy Destination:=ZBereich
 Next
End With
End Sub

Im vorherigen Makro wird eine neue Tabelle zu Beginn der aktiven Arbeitsmappe eingefügt. Danach wird eine Schleife aufgebaut, die beginnend bei der zweiten Tabelle alle Tabellen der Arbeitsmappe abarbeitet. Auf diesen Tabellen wird zunächst der verwendete Bereich (=UsedRange) ermittelt und in der Variablen KBereich festgehalten. Danach wird auf der ersten Tabelle die Einfügeposition ermittelt, indem in Spalte A die letzte Zelle (Cells(Rows.Count, "A").End(xlUp)) ermittelt wird. Die nachfolgende 2 bedeutet, dass zu dieser letzten verwendeten Zelle noch zwei Zellen hinzuaddiert werden sollen. Damit entsteht dann nach jedem kopierten Block eine Leerzeile. Diese Zahl können Sie beispielsweise durch den Wert 1 ersetzen, wenn Sie keine Leerzeilen zwischen den kopierten Blöcken wünschen. Diese so ermittelte Einfügeposition wird in der Variablen ZBereich festgehalten. Mithilfe der Methode Copy wird nun der ermittelte Bereich aus jeder Tabelle auf die erste Tabelle an die vorher ermittelte Einfügeposition kopiert.

Das ist nur ein Ausschnitt aus dem Produkt Controlling Office. Sie wollen mehr? Dann testen Sie hier live & unverbindlich Controlling Office 30 Minuten lang und lesen Sie den gesamten Inhalt.


Meistgelesene beiträge