VBA: Tabelleblätter kosolidieren
10.11.2016 15:16:48
David
Ich habe ein Excel-File mit den Sheets FOA_requested, FOA_received, Abteilung 1, Abteilung 2, Abteilung 3, Abteilung 4, Abteilung 5, Abteilung 6.
Abteilung 1-6 enthalten Daten, jeweils ab Zelle F4:Jxy. In Spalte F der Abteilungssheets wird zunächst zwischen zwei Kriterien unterteilt: "requested" und "received".
Die Informationen aus den Sheets Abteilung 1-6 sollen in den Sheets FOA_requested und FOA_received entsprechend des Merkmals in Spalte F des jeweiligen Sheets zusammengafasst werden.
Ich brauche also einen VBA-Code, der zunächt in Sheet Abteilung 1 geht, alle beschriebenen Zellen ab F4 bis Jxy auswählt. Dann die Daten mit dem Merkmal "received" in das Sheet FOA_received kopiert und alle Daten mit dem Merkmal "requested" in das Sheet FOA_requested und zwar jeweils in den Bereich ab Zelle I4. Dann muss das Makro zum nächsten Sheet Abteilung 2 gehen, wieder unterscheiden und die Daten ans Ende (erste freie Zeile) der Tabelle in FOA_requested, bzw. FOA_received kopieren usw.
Ich bin absoluter VBA-neuling und kann leider keine passende Lösung finden.
Mein Code :
'Länge und Breite bestimmen der zu kopierenden bereiche bestimmen:
lastCol_Abt1 = Sheets(Abt1).Range("G4").End(xlToRight).Column
lastRow_Abt1 = Sheets(Abt1).Range("G4").End(xlDown).Row
lastCol_Abt2 = Sheets(Abt2).Range("G4").End(xlToRight).Column
lastRow_Abt2 = Sheets(Abt2).Range("G4").End(xlDown).Row
'...
'Daten von Abteilung1, ... an Ende von FOA1 kopieren
On Error Resume Next
Range(Sheets(Abt1).Cells(4, 7), Sheets(Abt1).Cells(lastRow_Abt1, _ lastCol_Abt1)).Copy Destination:=Sheets(FOA1).Cells(4, 9)
Range(Sheets(Abt2).Cells(4, 7), Sheets(Abt2).Cells(lastRow_Abt2, _
lastCol_Abt2)).Copy Destination:=Worksheets(FOA1) _ .Range("I4").End(xlDown).Offset(1, 0)
...
Ich hab also nur geschafft, die Daten jeder Abteilung untereinander in FOA1 zu kopieren. Ich habe allerdings keine Ahnung, wie ich die Unterscheidung der merkmale hinbekomme, sodass die Daten richtigerweise entweder nach FOA1 oder FOA 2 kopiert werden.
Vielen Dank für jede Hilfe!