Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender

Forumthread: Mehrere Excel-Dateien mittels Makro zusammenführen

Mehrere Excel-Dateien mittels Makro zusammenführen
27.01.2016 16:59:39
Lena
Hallo zusammen,
Ich habe auf einer SharePoint-Seite mehrere Excel-Dateien, die jeweils eine Tabelle mit Adressen (Spalten mit Namen, Vornamen, Strasse, usw.) enthalten. Die Dateinamen beginnen alle mit "Excel_" und einem Namen (z.B. "Excel_Peter.xlsx")
Nun möchte ich mit Excel 2013, alle Excel-Dateien auf dieser Liste bzw. in diesem Verzeichnis (\\example.com\sites\Addresses\List1\) in eine eigene Datei zusammenführen, welche am Schluss mit einem neuen Namen gespeichert wird. Hierzu habe ich eine neue Datei (Overview_new.xlsx) sowie mit dem untenstehenden Makro erstellt.
Das Makro öffnet zurzeit aber jeweils nur die erste Datei im Verzeichnis fünf Mal und kopiert und fügt deren Inhalt in die neue Liste ein. Die Zahl fünf habe ich willkürlich eingesetzt, damit zumindest die ersten fünf Dateien behandelt werden. Diese kann aber noch angepasst werden. Oder vielleicht gibt es eine andere Lösung, damit alle Dateien abgearbeitet werden? Könnt ihr mir helfen, dass das Makro nicht nur die erste Datei, sondern alle Dateien (mit Excel_*.xlsx im Dateinamen) zusammenführt?
Vielen Dank für eure Unterstützung.
Liebe Grüsse
Lena

Sub test3()
Dim FileArray() As Variant
Dim FileName As Variant
Dim FileCount As Integer
FileCount = 0
FileName = Dir("\\example.com\sites\Addresses\List1\")
If FileName = "" Then GoTo NoFilesFound
ActiveWorkbook.Windows(1).Caption = "Overview"
Do While FileCount  1 Then
Range("A65536").End(xlUp).Offset(1, 0).Select
Else
Range("A2").Select
End If
ActiveSheet.Paste
Application.CutCopyMode = False
Windows("ABC").Close
FileList = FileArray
Loop
ActiveWorkbook.SaveAs FileName:= _
"http://example.com/sites/Addresses/List1/Overview_new_" & Format(Date$, "YYYY-MM-DD") & ". _
xlsm" _
, FileFormat:=xlOpenXMLWorkbookMacroEnabled, CreateBackup:=False
NoFilesFound:
FileList = False
End Sub

Anzeige

2
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Mehrere Excel-Dateien mittels Makro zusammenführen
28.01.2016 09:27:17
Oberschlumpf
Hi Lena
die Funktion DIR gibt "nur" den Dateinamen ohne Pfad zurück.
Das ist aber nicht schlimm, da man ja im eigtl Open-Befehl den Pfad fest vorgeben kann.
So änder bitte mal die Zeile
Workbooks.Open FileName:="\\example.com\sites\Addresses\List1\Excel_*"
um in
Workbooks.Open "\\example.com\sites\Addresses\List1\" & FileName
und verschieb die Zeile
FileName = Dir()
direkt oberhalb von Loop, so dass dein Code an der Stelle dann so aussehen sollte:
FileName = Dir()
Loop
Die Klammmern () hinter Dir könntest du auch weglassen.
Hilfts?
Wenn nicht, dann zeig bitte mal ne Bsp-Datei inkl Code.
Ciao
Thorsten

Anzeige
AW: Mehrere Excel-Dateien mittels Makro zusammen
28.01.2016 17:23:33
Lena
Hallo Oberschlumpf
Habe in der Zeile "Workbooks.Open" noch ergänzt, dass nur die Dateien mit .xlsx-Dateien durchgearbeitet werden:

Workbooks.Open "\\example.com\sites\Addresses\List1\*.xlsx" & FileName
So funktioniert das Makro wie gewünscht und einwandfrei. Super, vielen Dank für deine Hilfe :-)!!!
Gruss
Lena
Anzeige
;

Forumthreads zu verwandten Themen

Anzeige
Anzeige
Anzeige
Anzeige
Entdecke relevante Threads

Schau dir verwandte Threads basierend auf dem aktuellen Thema an

Alle relevanten Threads mit Inhaltsvorschau entdecken
Anzeige
Anzeige

Infobox / Tutorial

Mehrere Excel-Dateien mit einem Makro zusammenführen


Schritt-für-Schritt-Anleitung

Um mehrere Excel-Dateien in einer Datei zusammenzuführen, kannst Du ein VBA-Makro verwenden. Hier ist eine Schritt-für-Schritt-Anleitung, um dies zu erreichen:

  1. Öffne Excel und erstelle eine neue Arbeitsmappe, in der die Daten zusammengeführt werden sollen.
  2. Drücke ALT + F11, um den VBA-Editor zu öffnen.
  3. Füge ein neues Modul hinzu:
    • Klicke auf Einfügen > Modul.
  4. Kopiere den folgenden Code in das Modul:
Sub mehrereExcelDateienZusammenführen()
    Dim FileName As String
    Dim FilePath As String
    Dim FileCount As Integer
    Dim ws As Worksheet

    FilePath = "\\example.com\sites\Addresses\List1\"
    FileName = Dir(FilePath & "Excel_*.xlsx")
    FileCount = 0

    While FileName <> ""
        Workbooks.Open FilePath & FileName
        Set ws = ActiveSheet

        ws.UsedRange.Copy
        ThisWorkbook.Sheets(1).Cells(FileCount + 1, 1).PasteSpecial xlPasteAll
        FileCount = FileCount + ws.UsedRange.Rows.Count
        Workbooks(FileName).Close False
        FileName = Dir
    Wend

    ThisWorkbook.SaveAs FilePath & "Overview_new_" & Format(Date, "YYYY-MM-DD") & ".xlsx"
End Sub
  1. Schließe den VBA-Editor und gehe zurück zu Excel.
  2. Führe das Makro aus:
    • Drücke ALT + F8, wähle mehrereExcelDateienZusammenführen und klicke auf Ausführen.

Häufige Fehler und Lösungen

  • Das Makro öffnet nur die erste Datei: Achte darauf, dass die Zeile FileName = Dir direkt über der While-Schleife steht. So wird die nächste Datei in der Schleife korrekt geladen.

  • Dateipfade stimmen nicht: Stelle sicher, dass der angegebene Dateipfad korrekt ist und die Dateien vorhanden sind.

  • Keine Daten kopiert: Überprüfe, ob die Excel-Dateien tatsächlich Daten enthalten und dass der Bereich, den Du kopierst, korrekt definiert ist.


Alternative Methoden

Wenn Du keine Makros verwenden möchtest, kannst Du auch folgende Methoden ausprobieren:

  • Power Query: Nutze Power Query, um Daten aus mehreren Excel-Dateien zusammenzuführen. Dies ist eine benutzerfreundliche Möglichkeit, ohne VBA.

  • Manuelles Kopieren: Öffne jede Datei manuell und kopiere die Daten in die Zielarbeitsmappe. Dies ist jedoch zeitaufwendig, wenn Du viele Dateien hast.


Praktische Beispiele

Hier ist ein Beispiel, wie Du die Adressdaten aus mehreren Excel-Dateien zusammenführen kannst:

Angenommen, Du hast folgende Dateien:

  • Excel_Peter.xlsx
  • Excel_Maria.xlsx
  • Excel_John.xlsx

Jede Datei enthält eine Tabelle mit Namen, Vornamen und Adressen. Mit dem obigen Makro werden alle Daten in die Datei Overview_new_YYYY-MM-DD.xlsx zusammengeführt.


Tipps für Profis

  • Automatisierung: Du kannst das Makro so anpassen, dass es automatisch zu einem bestimmten Zeitpunkt ausgeführt wird, indem Du es in eine Excel-Datei einfügst, die beim Start geöffnet wird.

  • Datenvalidierung: Füge eine Datenvalidierungsschicht ein, um sicherzustellen, dass nur gültige Daten von den einzelnen Dateien übernommen werden.

  • Fehlerprotokollierung: Implementiere eine Fehlerprotokollierung im Makro, um Probleme beim Zusammenführen der Dateien leichter zu identifizieren.


FAQ: Häufige Fragen

1. Kann ich mehrere Excel-Dateien ohne Makro zusammenführen?
Ja, Du kannst Power Query verwenden oder die Daten manuell kopieren.

2. Welche Excel-Version benötige ich für dieses Makro?
Das Makro wurde für Excel 2013 entwickelt, funktioniert jedoch auch in neueren Versionen.

3. Was mache ich, wenn ich eine Fehlermeldung bekomme?
Überprüfe den Dateipfad und stelle sicher, dass alle Dateien im angegebenen Verzeichnis vorhanden sind. Achte auch darauf, dass Du die richtigen Berechtigungen hast.

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Entdecke mehr
Finde genau, was du suchst

Die erweiterte Suchfunktion hilft dir, gezielt die besten Antworten zu finden

Suche nach den besten Antworten
Unsere beliebtesten Threads

Entdecke unsere meistgeklickten Beiträge in der Google Suche

Top 100 Threads jetzt ansehen
Anzeige