Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1588to1592
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

Tabellen per Makro zusammenführen

Tabellen per Makro zusammenführen
07.11.2017 10:04:46
Daniel
Guten Tag Profis,
ich brauche dringend eure Hilfe:
Ich habe ca. 100 Exel-Dateien, welche zusammengefasst werden sollen, ohne, dass ich diese alle manuell öffnen und zusammenkopieren muss.
Folgendes soll erledigt werden für jede Excel-Datei:
- Zeilen 1-5 löschen (Hier stehen unnütze Daten drin über den Spaltenbeschriftungen)
- In Zeile 6 stehen von Spalte A-G Überschriften, diese sind in jeder Excel-Datei gleich und sollen einmal übernommen werden in die Zusammenfassung
- Dann soll aus allen 100 Dateien alle Zellen unter den passenden Überschriften (immer gleich aufgebaut) zusammengefasst werden
Welchen VBA-Code kann ich hier nutzen und wo kopiere ich diesen genau hin, damit es funktioniert?
Danke euch, ihr helft mir sehr.
VG
Daniel

3
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Tabellen per Makro zusammenführen
07.11.2017 10:31:32
Michael
Hallo!
zB so:
Sub a()
Dim WbZ As Workbook: Set WbZ = ThisWorkbook
Dim WbQ As Workbook
Dim WsZ As Worksheet: Set WsZ = WbZ.Worksheets("Tabelle1")
Dim WsQ As Worksheet, Pfad$, Datei$, bHeader As Boolean
Application.ScreenUpdating = False
Pfad = "D:\DeinStartOrdner\" ' anpassen!
Pfad = IIf(Right(Pfad, 1) = "\", Pfad, Pfad & "\")
bHeader = True
Datei = Dir(Pfad & "*.xls*", vbDirectory)
Do Until Datei = ""
If Datei  WbZ.Name Then
Set WbQ = Workbooks.Open(Pfad & Datei)
Set WsQ = WbQ.Worksheets(1)
WsQ.Rows("1:5").Delete
With WsQ.UsedRange
If bHeader Then .Resize(1, .Columns.Count).Copy _
WsZ.Cells(WsZ.Rows.Count, "A").End(xlUp)
.Offset(1, 0).Resize(.Rows.Count - 1, .Columns.Count).Copy _
WsZ.Cells(WsZ.Rows.Count, "A").End(xlUp).Offset(1, 0)
End With
WbQ.Close True
bHeader = False
End If
Datei = Dir
Loop
Set WbZ = Nothing: Set WbQ = Nothing: Set WsZ = Nothing: Set WsQ = Nothing
End Sub
Dieser Code muss in ein allgemeines Modul in der Mappe, in der die Daten gesammelt werden. Dazu eine neue Mappe öffnen, mit [Alt] + [F11] den VBA-Editor öffnen, dann Einfügen, Modul, dort einfügen. Im Code musst Du den Startpfad (mit den auszulesenden Dateien) anpassen/angeben (ist im Code gekennzeichnet).
Der Code öffnet die auszlesenden Dateien, und übernimmt die Daten aus dem ersten Blatt, da bisher nicht klar war, ob es ggf. mehrere Blätter in den Quelldateien gibt. Geschrieben werden die Daten ebenfalls in das erste Blatt der Zieldatei.
Passt?
LG
Michael
Anzeige
AW: Tabellen per Makro zusammenführen
07.11.2017 14:35:28
Daniel
Wow, cool, danke dir Michael. Läuft genau so wie es soll. Perfekt!
Echt genial, spart uns extreme viel Zeit.
Freut mich, Danke für die Rückmeldung, owT
07.11.2017 15:11:03
Michael

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige