Hallo,
UsedRange würde ich zum Ermitteln der letzten belegten Zeile nicht benutzen, ist ein unsicherer Kandidat.
Dir ist aber schon bewußt, dass der Code jedesmal ein neues Blatt anlegt?
Sub TabellenKopierenUntereinander()
Dim i As Long
Dim loLetzteQ As Long
Dim loLetzteZ As Long
Dim raRng As Range
With ActiveWorkbook
'neue Tabelle an die erste Position einfügen
.Worksheets.Add Before:=.Worksheets(1)
For i = 2 To .Worksheets.Count
'Ermitteln den benutzen Bereich der einzelnen Tabellenblätter
With Worksheets(i)
'letzte Zeile ermitteln des jew. Quellblattes
loLetzteQ = .Cells(.Rows.Count, 1).End(xlUp).Row
'letzte Zeile ermitteln des Zielblattes
loLetzteZ = Worksheets(1).Cells(Rows.Count, 1).End(xlUp).Row + 1
'Kopierbereich definieren
Set raRng = .Range(.Cells(7, 1), .Cells(loLetzteQ, 13))
'Daten kopieren
raRng.Copy Worksheets(1).Cells(loLetzteZ, 1)
End With
Next
End With
'Range-Variable leeren
Set raRange = Nothing
End Sub
Gruß Werner
|