Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1524to1528
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

VBA: Tabelleblätter kosolidieren

VBA: Tabelleblätter kosolidieren
10.11.2016 15:16:48
David
Hallo!
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!

1
Beitrag zum Forumthread
Beitrag zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: VBA: Tabelleblätter kosolidieren
12.11.2016 15:59:38
Michael
Hi,
ich habe leider grad keine Zeit, das als fertiges Programm auszuformulieren...
Am einfachsten (zu programmieren) ist es, wenn Du nach dem Einlesen in FOA_received (!) alles nach dem Kriterium in Spalte F sortierst:
Sheets(FOA1).Cells(4, 9).currentregion.sort key1:=range("F4"), order1:=xlascending, Header:=xlnone

wobei "F4" wohl durch eine andere Spalte ersetzt werden muß - und falls eine Überschrift da ist, mußt Du das xlnone ersetzen.
Danach suchst Du die erste Zelle des unteren Bereichs, also etwa
Sheets(FOA1).range("F:F").find ("requested", usw.)
und schneidest alles von da ab aus und fügst es im anderen FOA ein.
Vielleicht bekommst Du das ja hin; falls nicht, lade bitte eine Beispieldatei hoch.
Schöne Grüße,
Michael
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige