Hallo,
ich nochmal.
Habe gerade gesehen, dass ich die Startzeile des Kopierbereiches falsch angegeben hatte. Ich hatte da 11 drin, du willst ja aber ab Zeile 4 kopieren. Wenn die Endzeile des Kopierbereiches fix ist (in deinem Beispiel 11), dann fällt die Ermittlung der letzten belegten Zelle weg und du kannst die Endzeile auch direkt angeben.
Das wäre dann so:
Option Explicit
Sub report()
Dim StartzeileQuelle As Long, EndzeileQuelle As Long, EinfügezeileZiel As Long
Dim Spalte As Variant, Zaehler As Variant
Dim Quelle As Worksheet, Ziel As Worksheet
'Startzeile Kopierbereich Quellblatt
StartzeileQuelle = 4
EndzeileQuelle = 11
'Einfügezeile im Zielblatt
EinfügezeileZiel = 5
Set Quelle = ThisWorkbook.Worksheets("Tabelle2") 'Quellblatt festlegen
Set Ziel = ThisWorkbook.Worksheets("Tabelle1") 'Zielblatt festlegen
Zaehler = Array(2, 5, 6)
'Schleife über die Spalten
For Each Spalte In Zaehler
With Quelle
'Bereich Startzeile bis Endzeile aus Quellblatt in Zielblatt Einfügezeile kopieren
.Range(.Cells(StartzeileQuelle, Spalte), .Cells(EndzeileQuelle, Spalte)).Copy _
Ziel.Cells(EinfügezeileZiel, Spalte)
End With
Next Spalte
'Variablen wieder freigeben
Set Quelle = Nothing: Set Ziel = Nothing
End Sub
Gruß Werner
|