Ich würde gerne ein Makro schreiben, welches mir bestimmte Zellen aus einer beliebigen Anzahl Arbeitsblätter kopiert und diese dann in einem "Master-Arbeitsblatt" einfügt.
Zur Veranschaulichung:
1. For Each ws In ActiveWorkbook.Worksheets
If ws.Name "Master-Arbeitsblatt" Then.....
2. Kopiere Zellen A1, B4, C3:C8 vom ersten Arbeitsblatt
3. Füge Zelle A1 in Spalte B vom "Master-Arbeitsblatt" ein, Zelle B4 in Spalte C, Zellen C3:C8 in Spalte D vom "Master-Arbeitsblatt".
4. Suche die nächste komplett freie Zeile im "Master-Arbeitsblatt" und füge dort dieselben Zellen (A1. B4, C3:C8) vom zweiten Arbeitsblatt ein
5. Führe den Loop so oft durch, bis jedes Arbeitsblatt einmal dran war.
Ich habe mehrere Optionen versucht, bin jedoch nicht auf die Lösung gekommen.
Das ist der Code, welcher ich bis jetzt habe:
----------------------------------------------------------------------------------------------------------------------
Dim MF As Worksheet, SF As Worksheet
Dim TargetRow As Long, Index As Long
Dim SourceArr As Variant, DestArr As Variant
Dim Source As Range, Dest As Range
Dim ws As Worksheet
'set references up-front
Set SF = ThisWorkbook.Worksheets("erstes Arbeitsblatt")
Set MF = ThisWorkbook.Worksheets("Masterfile")
With MF
TargetRow = .Range("A" & .Rows.Count).End(xlUp).Row + 1
End With
SourceArr = Array("D1:M1", "D2:M2", "D3:M3", "D4:M4", "D5:M5", "B8:M12", "A16:M23", "B27:M36", "B39:M42")
DestArr = Array("A", "B", "C", "D", "E", "F", "G", "J", "K")
For Index = LBound(SourceArr) To UBound(SourceArr)
Set Source = SF.Range(SourceArr(Index))
Set Dest = MF.Range(DestArr(Index) & TargetRow)
Source.Copy
Dest.PasteSpecial (xlPasteValues)
Next Index
----------------------------------------------------------------------------------------------------------------------
Leider funktioniert dieser Code nur für das "erste Arbeitsblatt" & hat auch keine Funktion, um die nächste komplett freie Zeile zu finden.
Ich bedanke mich herzlich im Voraus.