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

Forumthread: Mehrere txt-Dateien importieren

Mehrere txt-Dateien importieren
06.12.2004 13:52:20
Peter
Hi!
Ich möchte gerne mehrere txt-Dateien mit unterschiedlichen Daten in Excel importieren. Und zwar in eine neue Arbeitsmappe, jede txt-Datei in eine separate Tabelle, die den Namen der entsprechenden txt-Datei ohne die Erweiterung ".txt" hat.
Desweiteren ist der Pfad zu den txt-Dateien unbekannt (also nicht fix), wobei alle zu importierenden txt-Dateien in einem Ordner stehen.
Anmerkung zu den txt-Dateien: Es sind Zahlen in Spalten (mal eine mal mehrere) ohne Überschriften. Das Format müsste in Excel noch geändert und Spaltentitel eingefügt werden.
Bitte um Hilfe
Peter
Anzeige

6
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Mehrere txt-Dateien importieren
UweD
Hallo
da geht leider ohne genauere Dateibeschreibung nichts.
Bitte mal eine Muster.txt veröffentlichen.
AW: Mehrere txt-Dateien importieren
06.12.2004 14:31:27
Peter
Yep.
Hier ist so ne Musterdatei (leider verzippt, weil 900 kb groß): https://www.herber.de/bbs/user/14395.zip
In dem Fall 20 Spalten. Andere Dateien können auch nur eine Spalte haben. Das meinte ich mit "unterschiedlichen Daten".
Die Anzahl der Reihen könnte auch variieren.
Vielleicht noch ergänzend: Bei jeder txt-Datei fehlen zwei Spalten (Zeitangaben), die ich in die jeweilige Tabelle in Spalte A und B einfügen würde.
Aber in erster Linie ist wirklich der Import mehrerer txt-Dateien in EINE Arbeitsmappe und die Benennung der Tabellen ist das Wesentliche, weil ich das nicht hinkriege.
Peter
Anzeige
AW: Mehrere txt-Dateien importieren
UweD
Hallo
hier hätte ich was für dich.


      
Sub Alle_Textdateien()
    strExt = 
"*.txt"       'Dateiextension ggf. anpassen
    ZuÖffnendeDatei = Application.GetOpenFilename("Textdateien (" & strExt & "), " & strExt, Title:="Verzeichnisauswahl, erste Datei auswählen")
    
If ZuÖffnendeDatei = False Then Exit Sub
    
'Die ausgewählte Datei ist egal. es wird hier nur das Verzeichnis der Datei ausgewertet
    strPath = CurDir & "\"
    
If strPath = "" Then
        
Exit Sub
    
Else
        ChDir strPath
        strFile = Dir(strPath & strExt) 
'hier wird die erste Datei gefunden
        Do While Len(strFile) > 0
            Workbooks.OpenText Filename:=strPath & strFile, DataType:=xlDelimited, _
                TextQualifier:=xlDoubleQuote, ConsecutiveDelimiter:=
True, _
                Tab:=
True, Semicolon:=False, Comma:=False, _
                Space:=
True, Other:=False, trailingMinusNumbers:=True
            Sheets(1).Move After:=ThisWorkbook.Sheets(ThisWorkbook.Sheets.Count)
            
'...weiter mit Änderungen an der Tabelle
            '...
            strFile = Dir() ' nächste Datei
        Loop
    
End If
End Sub 



Das Verzeichnis wird ausgewählt (Welche Datei ausgewählt wird ist egal)
Dann werden alle *.txt Dateien aus dem Verzeichnis Geöffnet (Spalten separiert durch leerzeichen/ oder TAB) und anschließend in die Aktuelle Mappe verschoben (immer als letzte eingefügt). TabellenName ist dabei der Dateiname ohne .txt.
An der Markierten Makrostelle kannst du weitere "Manipulationen" vornehmen
Gruß UD
Anzeige
AW: Mehrere txt-Dateien importieren
08.12.2004 14:08:11
Peter
Hey, funktioniert nahezu perfekt!!!
Vielen Dank!
Hätte zwei Nachfragen:
Warum bleibt die Spalte A jeweils frei?
Ist es auch möglich, nur bestimmte Dateien auszuwählen?
Was ich ursprünglich versucht hatte, war, eine Userform zu basteln, bei der man den Ordner auswählen muss (button) und per Hakensetzen die entsprechenden Dateien zu importieren (button). Aber zum einen kam ich eben bei dem Import schon nicht weiter (was mittlerweile geht :-) ), aber zum andern machte mir dann auch die Einzelauswahl der Dateien ein Strich durch die Rechnung.
Peter
Anzeige
AW: Mehrere txt-Dateien importieren
09.12.2004 10:04:04
Peter
Hey, funktioniert nahezu perfekt!!!
Vielen Dank!
Hätte zwei Nachfragen:
Warum bleibt die Spalte A jeweils frei?
Ist es auch möglich, nur bestimmte Dateien auszuwählen?
Was ich ursprünglich versucht hatte, war, eine Userform zu basteln, bei der man den Ordner auswählen muss (button) und per Hakensetzen die entsprechenden Dateien zu importieren (button). Aber zum einen kam ich eben bei dem Import schon nicht weiter (was mittlerweile geht :-) ), aber zum andern machte mir dann auch die Einzelauswahl der Dateien ein Strich durch die Rechnung.
Peter
Anzeige
AW: Mehrere txt-Dateien importieren
09.12.2004 18:15:49
Peter
Noch etwas:
Hab jetzt auch schon länger rumprobiert, aber eine neue Arbeitsmappe wird nicht geöffnet!! Alle neuen Tabellen werden in die alte geschrieben.
Wie kann ich alles in die eine neue Mappe bringen?
Peter
;

Forumthreads zu verwandten Themen

Anzeige
Anzeige
Anzeige
Anzeige

Infobox / Tutorial

Mehrere txt-Dateien in Excel importieren


Schritt-für-Schritt-Anleitung

  1. Öffne Excel und drücke ALT + F11, um den Visual Basic for Applications (VBA) Editor zu öffnen.

  2. Füge ein neues Modul hinzu: Klicke mit der rechten Maustaste auf "VBAProject (DeineArbeitsmappe)" und wähle "Einfügen" > "Modul".

  3. Kopiere den folgenden VBA-Code in das Modul:

    Sub Alle_Textdateien()
       Dim strExt As String
       Dim ZuÖffnendeDatei As Variant
       Dim strPath As String
       Dim strFile As String
    
       strExt = "*.txt" 'Dateiextension ggf. anpassen
       ZuÖffnendeDatei = Application.GetOpenFilename("Textdateien (" & strExt & "), " & strExt, Title:="Verzeichnisauswahl, erste Datei auswählen")
    
       If ZuÖffnendeDatei = False Then Exit Sub
    
       strPath = CurDir & "\"
       If strPath = "" Then Exit Sub
    
       ChDir strPath
       strFile = Dir(strPath & strExt) 'hier wird die erste Datei gefunden
    
       Do While Len(strFile) > 0
           Workbooks.OpenText Filename:=strPath & strFile, DataType:=xlDelimited, _
               TextQualifier:=xlDoubleQuote, ConsecutiveDelimiter:=True, _
               Tab:=True, Semicolon:=False, Comma:=False, _
               Space:=True, Other:=False, trailingMinusNumbers:=True
    
           Sheets(1).Move After:=ThisWorkbook.Sheets(ThisWorkbook.Sheets.Count)
           strFile = Dir() ' nächste Datei
       Loop
    End Sub
  4. Schließe den VBA-Editor und gehe zurück zu Excel.

  5. Führe das Makro aus: Drücke ALT + F8, wähle "Alle_Textdateien" und klicke auf "Ausführen". Wähle den Ordner mit den txt-Dateien aus.


Häufige Fehler und Lösungen

  • Problem: Die Spalte A bleibt leer.

    • Lösung: Der Code öffnet die txt-Dateien ohne zusätzliche Daten. Füge eine Zeile hinzu, um Werte in die Spalten einzufügen.
  • Problem: Neue Arbeitsmappe wird nicht geöffnet.

    • Lösung: Stelle sicher, dass Du das Makro so anpasst, dass es in eine neue Arbeitsmappe importiert.
  • Problem: Es werden nicht alle gewünschten Dateien importiert.

    • Lösung: Du kannst den Code erweitern, um eine Benutzeroberfläche zu erstellen, die es ermöglicht, bestimmte Dateien auszuwählen.

Alternative Methoden

  1. Power Query: Du kannst auch Power Query verwenden, um mehrere txt-Dateien zusammenzuführen. Wähle "Daten" > "Neue Abfrage" > "Aus Datei" > "Aus Ordner". Folge den Anweisungen, um die Dateien zu importieren.

  2. Makros: Verwende andere VBA-Skripte oder Makros, die speziell für das Zusammenführen von Daten aus mehreren txt-Dateien in Excel entwickelt wurden.


Praktische Beispiele

  • Beispiel 1: Wenn Du mehrere txt-Dateien hast, die Wetterdaten enthalten, kannst Du den oben genannten Code verwenden, um die Daten in eine neue Excel-Arbeitsmappe zu importieren und die Tabellen nach den Dateinamen zu benennen.

  • Beispiel 2: Wenn Du Rechnungsdaten hast, die in verschiedenen txt-Dateien gespeichert sind, kannst Du die Dateien zusammenführen, um eine vollständige Übersicht über Deine Finanzen zu erhalten.


Tipps für Profis

  • Datenbereinigung: Überlege, wie Du die importierten Daten nach dem Import direkt formatieren und bereinigen kannst, um die Arbeit zu erleichtern.

  • Automatisierung: Erstelle eine Benutzeroberfläche mit einer Userform, um die Auswahl der Dateien zu vereinfachen.

  • Fehlerbehandlung: Implementiere Fehlerbehandlungsroutinen im VBA-Code, um sicherzustellen, dass das Makro bei Problemen nicht abstürzt.


FAQ: Häufige Fragen

1. Wie kann ich mehrere txt-Dateien in Excel importieren?
Du kannst dies mit einem VBA-Makro tun, das die txt-Dateien in eine neue Arbeitsmappe importiert.

2. Können txt-Dateien mit unterschiedlichen Spaltenanzahlen importiert werden?
Ja, der VBA-Code kann so angepasst werden, dass er unterschiedliche Spaltenanzahlen berücksichtigt.

3. Wie benenne ich die Tabellen nach den Dateinamen?
Im VBA-Code wird bereits eine Zeile verwendet, die die Tabellen entsprechend dem Dateinamen benennt.

4. Ist es möglich, nur bestimmte Dateien auszuwählen?
Ja, Du kannst den VBA-Code erweitern, um eine Benutzeroberfläche zu erstellen, in der Du die gewünschten Dateien auswählen kannst.

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