Hallo Andrea,
Punkt 1:
für eine saubere Darstellung des Codes benutze bitte einen anderen Browser (Firefox z.B.) dann wird dir oben in der Icon-Leiste eine rote Klammer angezeigt über die du den Code in den Beitrag einfügen kannst.
Punkt 2:
deine letzte Bemerkung: klappt leider nicht ist nicht hilfreich
Wenn ich das richtig sehe, dann willst du in einer Schleife über alle Tabellenblätter beginnend mit Blatt 5.
Nur wenn im jeweiligen Blatt in der Zelle C1 ein Wert ist, dann soll kopiert werden.
Du schreibst, dass du mehrere Spalten kopieren willst, welche das aber sind verrätst du leider nicht.
Teste mal den Code. Der läuft in einer Schleife über die Blätter, ab Nr. 5, prüft ob in C1 ein Wert ist und läuft dann in einer weiteren Schleife über die Spalten C bis E.
In jeder Spalte wird dann zunächst die letzte belegte Zelle ermittelt und dann der Bereich von Zeile 1 bis zur letzten belegten Zelle ins Zielblatt kopiert. Dann gehts weiter mit der nächsten Spalte.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 | Option Explicit
Sub KopiereBereich()
Dim i As Long , z As Long
Dim loLetzteQuelle As Long , loLetzteZiel As Long
For i = 5 To Worksheets.Count
With Worksheets(i)
If .Cells(1, 3) <> "" Then
For z = 3 To 5
loLetzteQuelle = .Cells(.Rows.Count, z). End (xlUp).Row
.Range(.Cells(1, z), .Cells(loLetzteQuelle, z)).Copy
With Worksheets( "Test" )
loLetzteZiel = .Cells(.Rows.Count, 16). End (xlUp).Offset(1).Row
.Cells(loLetzteZiel, 16).PasteSpecial Paste:=xlPasteValues, Transpose:= True
End With
Next z
End If
End With
Next i
End Sub
|
Gruß Werner
|