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

Forumthread: Mehrere csv zusammenführen

Mehrere csv zusammenführen
24.01.2023 09:46:04
VikAlex
Moin zusammen,
ich habe monatlich eine recht undankbare Aufgabe und suche dafür eine Makro-Lösung. Im Internet, auch hier im Forum habe ich auch schon einige Codes gefunden, doch keinen konnte ich auf meine Bedürfnisse anpassen :(.
Was ist zu tun?
In einem variablen Ordner (ändert sich jeden Monat) liegen etwa 60 *csv Dateien ab, die ich händisch in einer einzigen Datei zusammenführe - also alles in einem einzigen Tabellenblatt untereinander.
Die Datenstruktur ist überall identisch. Die Spalten A bis M sind gefüllt.
Das gefüllte Tabellenblatt ist nach dem jeweiligen Dateinamen benannt, also nicht "Tabelle1" - sondern "EXCELH_#########".
Kann mir jemand bzgl. eines kurzen Makros helfen?
Viele Grüße
VikAlex
Anzeige

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

Betreff
Datum
Anwender
Anzeige
AW: Mehrere csv zusammenführen
24.01.2023 11:22:46
UweD
Hallo
so?
Sub alle_Dateien_Verzeichnis() '
    On Error GoTo Fehler
    Dim Pfad As String, Ext As String, Datei As String
    Dim TB1 As Worksheet, TB2 As Worksheet, LR1 As Long, LR2 As Long
    
    Set TB1 = ThisWorkbook.Sheets("TabelleZiel")
    
    Ext = "*.csv"
    Pfad = "E:\Excel\Temp\" '**** mit \
    
    Application.ScreenUpdating = False
    
    Datei = Dir(Pfad & Ext)
    Do While Len(Datei) > 0
    
        LR1 = TB1.Cells.SpecialCells(xlCellTypeLastCell).Row + 1 'erste freie Zeile
        
        Workbooks.Open Filename:=Pfad & Datei
        Set TB2 = ActiveWorkbook.Sheets(1) 'Das Quellblatt / CSV hat nur ein Blatt
        
        LR2 = TB2.Cells.SpecialCells(xlCellTypeLastCell).Row 'Letzte Zeile des gesamten Blattes
    
       TB2.Cells(1, 1).Resize(LR2, 13).Copy TB1.Cells(LR1, 1) 'Spalte A:M kopieren
        
        
        Workbooks(Datei).Close False
        
        Datei = Dir() ' nächste Datei
    Loop
    
    
    Err.Clear
Fehler:
    If Err.Number > 0 Then MsgBox "Fehler: " & _
        Err.Number & vbLf & Err.Description: Err.Clear
End Sub
LG UweD
Anzeige
AW: Mehrere csv zusammenführen
24.01.2023 11:45:14
snb
Verwende:
Sub M_snb()
    Shell "cmd Copy G:\OF\*.csv  G:\zusammen.csv", 0
    Workbooks.Open "G:\zusammen.csv"
End Sub

;

Forumthreads zu verwandten Themen

Anzeige
Anzeige
Anzeige
Anzeige
Anzeige
Anzeige

Infobox / Tutorial

Mehrere CSV-Dateien zusammenführen in Excel


Schritt-für-Schritt-Anleitung

Um mehrere CSV-Dateien zusammenzuführen, kannst du entweder ein Makro verwenden oder die Power Query-Funktion in Excel nutzen. Hier ist eine Schritt-für-Schritt-Anleitung für beide Methoden.

Methode 1: Mit VBA-Makro

  1. Öffne Excel und drücke ALT + F11, um den VBA-Editor zu öffnen.

  2. Klicke auf Einfügen > Modul, um ein neues Modul zu erstellen.

  3. Füge den folgenden VBA-Code ein:

    Sub alle_Dateien_Verzeichnis()
        On Error GoTo Fehler
        Dim Pfad As String, Ext As String, Datei As String
        Dim TB1 As Worksheet, TB2 As Worksheet, LR1 As Long, LR2 As Long
    
        Set TB1 = ThisWorkbook.Sheets("TabelleZiel")
    
        Ext = "*.csv"
        Pfad = "E:\Excel\Temp\" '**** mit \
    
        Application.ScreenUpdating = False
    
        Datei = Dir(Pfad & Ext)
        Do While Len(Datei) > 0
            LR1 = TB1.Cells.SpecialCells(xlCellTypeLastCell).Row + 1 'erste freie Zeile
            Workbooks.Open Filename:=Pfad & Datei
            Set TB2 = ActiveWorkbook.Sheets(1) 'Das Quellblatt / CSV hat nur ein Blatt
            LR2 = TB2.Cells.SpecialCells(xlCellTypeLastCell).Row 'Letzte Zeile des gesamten Blattes
    
            TB2.Cells(1, 1).Resize(LR2, 13).Copy TB1.Cells(LR1, 1) 'Spalte A:M kopieren
    
            Workbooks(Datei).Close False
            Datei = Dir() ' nächste Datei
        Loop
    
        Err.Clear
    Fehler:
        If Err.Number > 0 Then MsgBox "Fehler: " & Err.Number & vbLf & Err.Description: Err.Clear
    End Sub
  4. Passe den Pfad und den TabelleZiel nach deinen Bedürfnissen an.

  5. Führe das Makro aus und die CSV-Dateien werden in das angegebene Tabellenblatt zusammengeführt.

Methode 2: Mit Power Query

  1. Gehe zu Daten > Daten abrufen > Aus Datei > Aus Ordner.
  2. Wähle den Ordner aus, der die CSV-Dateien enthält.
  3. Klicke auf Transformieren, um den Power Query-Editor zu öffnen.
  4. Wähle die Spalten aus, die du zusammenführen möchtest, und klicke auf Kombinieren.
  5. Klicke auf Schließen & Laden, um die Daten in Excel zu importieren.

Häufige Fehler und Lösungen

  • Fehler beim Öffnen von CSV-Dateien: Stelle sicher, dass der angegebene Pfad korrekt ist und die CSV-Dateien nicht geöffnet sind.

  • Leere Zeilen im Zielblatt: Überprüfe, ob das Zielblatt richtig eingestellt ist und keine leeren Zeilen vorhanden sind.

  • Daten nicht korrekt zusammengeführt: Prüfe, ob die Struktur der CSV-Dateien einheitlich ist (gleiche Spaltenanzahl und -reihenfolge).


Alternative Methoden

Wenn du mehrere CSV-Dateien in Excel importieren möchtest, kannst du auch die Kommandozeile verwenden. Hier ist ein Beispielbefehl:

Sub M_snb()
    Shell "cmd Copy G:\OF\*.csv G:\zusammen.csv", 0
    Workbooks.Open "G:\zusammen.csv"
End Sub

Das ist eine schnelle Methode, um mehrere CSV-Dateien zusammenzuführen, ohne sie manuell zu öffnen.


Praktische Beispiele

  1. Zwei CSV-Dateien zusammenführen: Wenn du zwei CSV-Dateien hast, die die gleichen Spalten haben, kannst du die oben genannten Methoden verwenden, um sie in ein einzelnes Tabellenblatt zu importieren.

  2. CSV-Datei splitten: Wenn du eine große CSV-Datei hast, die du aufteilen möchtest, kannst du dies ebenfalls mit VBA tun. Ein einfaches Skript kann die Datei in kleinere Teile aufteilen.


Tipps für Profis

  • Verwende Power Query für große Datenmengen: Power Query ist leistungsstark und eignet sich hervorragend für das Datenmanagement.

  • Automatisiere den Prozess mit Makros: Wenn du regelmäßig mehrere CSV-Dateien zusammenführen musst, automatisiere den Prozess mit einem Makro.

  • Teste immer in einer Kopie: Bevor du große Mengen an Daten bearbeitest, teste deine Makros oder Power Query-Transformationsschritte in einer Kopie deiner Datei.


FAQ: Häufige Fragen

1. Wie kann ich mehrere CSV-Dateien in Excel importieren?
Du kannst dies entweder manuell über Daten > Daten abrufen > Aus Datei > Aus Ordner tun oder ein VBA-Makro verwenden.

2. Was mache ich, wenn die Spalten nicht übereinstimmen?
Stelle sicher, dass alle CSV-Dateien die gleiche Struktur haben. Wenn nicht, kann es notwendig sein, die Dateien vor dem Zusammenführen zu bereinigen.

3. Kann ich die CSV-Dateien direkt in ein bestehendes Arbeitsblatt importieren?
Ja, dies kannst du tun, indem du das Zielblatt im VBA-Makro entsprechend angibst oder die Power Query-Funktion verwendest, um die Daten direkt in ein bestehendes Blatt zu laden.

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige