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

Forumthread: Dateiname von .txt Dateien in Datei schreiben

Dateiname von .txt Dateien in Datei schreiben
03.02.2017 22:50:42
.txt
Guten Abend zusammen.
Ich habe in einem Ordner sehr viele .txt Datein. Ich möchte nun mit vba in jede dieser .txt Datei dessen Dateiname (oder Änderungsdatum der Datei) vor jede Zeile der jeweiligen Textdatei schreiben.
Bsp.
Datei1.txt
Datei2.txt
Datei3.txt
...
Der Inhalt der dateien soll nach der Bearbeitung folgendermaßen aussehen:
Datei1:
Datei1 [Inhalt der Zeile 1 der Datei 1]
Datei1 [Inhalt der Zeile 2 der Datei 1]
Datei1 [Inhalt der Zeile 3 der Datei 1]
Datei1 [Inhalt der Zeile 4 der Datei 1]
....
Datei 2:
Datei2 [Inhalt der Zeile 1 der Datei 2]
Datei2 [Inhalt der Zeile 2 der Datei 2]
Datei2 [Inhalt der Zeile 3 der Datei 2]
Datei2 [Inhalt der Zeile 4 der Datei 2]
....
usw usw.
Die Dateinamen sind allerdings nicht durchnummeriert, sondern können ganz unterschiedlich sein.
Lässt sich sowas mit vba machen?
Danke für Hilfe!
Anzeige

1
Beitrag zum Forumthread
Beitrag zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Dateiname von .txt Dateien in Datei schreiben
04.02.2017 01:26:29
.txt
Hallo Michael,
probiers mal damit:
Sub DateiDatumJedeZeile()
Dim fso As Object
Dim oFolder As Object
Dim oFile As Object
Dim strPath As String
Dim arr() As String
Dim i As Long
Dim z As Long
Set fso = CreateObject("scripting.filesystemobject")
strPath = "C:\" 'Ordner anpassen
Set oFolder = fso.getfolder(strPath)
For Each oFile In oFolder.Files
dateLM = oFile.DateLastModified
Set f = fso.OpenTextFile(oFile, ForReading)
Do Until f.AtEndOfStream
ReDim Preserve arr(i)
arr(i) = dateLM & " " & f.ReadLine
i = i + 1
Loop
f.Close
Set f = fso.OpenTextFile(oFile, ForWriting)
For z = LBound(arr) To UBound(arr)
f.WriteLine arr(z)
Next z
f.Close
Next oFile
End Sub
VG Anton
Anzeige
;

Forumthreads zu verwandten Themen

Anzeige
Anzeige
Anzeige
Anzeige
Anzeige
Anzeige

Infobox / Tutorial

Dateinamen von .txt Dateien in die Datei schreiben


Schritt-für-Schritt-Anleitung

Um den Dateinamen von .txt Dateien in jede Zeile der jeweiligen Textdatei zu schreiben, kannst Du das folgende VBA-Skript verwenden. Stelle sicher, dass Du den Pfad zum Ordner, der die .txt dateien enthält, anpasst.

  1. Öffne Excel und drücke ALT + F11, um den VBA-Editor zu öffnen.
  2. Gehe zu Einfügen > Modul, um ein neues Modul zu erstellen.
  3. Füge den folgenden Code ein:
Sub DateiDatumJedeZeile()
    Dim fso As Object
    Dim oFolder As Object
    Dim oFile As Object
    Dim strPath As String
    Dim arr() As String
    Dim i As Long
    Dim z As Long
    Set fso = CreateObject("scripting.filesystemobject")
    strPath = "C:\" 'Ordner anpassen
    Set oFolder = fso.getfolder(strPath)
    For Each oFile In oFolder.Files
        dateLM = oFile.DateLastModified
        Set f = fso.OpenTextFile(oFile, ForReading)
        Do Until f.AtEndOfStream
            ReDim Preserve arr(i)
            arr(i) = oFile.Name & " " & f.ReadLine
            i = i + 1
        Loop
        f.Close
        Set f = fso.OpenTextFile(oFile, ForWriting)
        For z = LBound(arr) To UBound(arr)
            f.WriteLine arr(z)
        Next z
        f.Close
    Next oFile
End Sub
  1. Schließe den VBA-Editor und kehre zu Excel zurück.
  2. Drücke ALT + F8, wähle das Skript DateiDatumJedeZeile aus und klicke auf Ausführen.

Das Skript fügt den Dateinamen jeder .txt datei vor jede Zeile in der Datei ein.


Häufige Fehler und Lösungen

  • Fehler: "Zugriff verweigert"

    • Lösung: Stelle sicher, dass Du die richtigen Berechtigungen für den Ordner hast, in dem sich die .txt dateien befinden.
  • Fehler: "Datei nicht gefunden"

    • Lösung: Überprüfe den angegebenen Pfad. Achte darauf, dass der Pfad korrekt ist und die .txt dateien vorhanden sind.
  • Fehler: Skript läuft nicht

    • Lösung: Stelle sicher, dass Du Makros in Excel aktiviert hast. Gehe zu Datei > Optionen > Trust Center > Einstellungen für das Trust Center > Makroeinstellungen und aktiviere die entsprechenden Optionen.

Alternative Methoden

Wenn Du kein VBA verwenden möchtest, kannst Du auch die Power Query-Funktion in Excel nutzen, um Daten aus .txt dateien zu importieren und zu bearbeiten. Allerdings ist diese Methode nicht so direkt, um Dateinamen in jede Zeile einzufügen.

  1. Gehe zu Daten > Daten abrufen > Aus Datei > Aus Text/CSV.
  2. Wähle die .txt datei aus und importiere sie.
  3. Führe die notwendigen Transformationen durch, um die gewünschten Informationen anzuzeigen.

Praktische Beispiele

Angenommen, Du hast die folgenden .txt dateien:

  • Beispiel1.txt mit folgendem Inhalt:

    Zeile 1
    Zeile 2
  • Beispiel2.txt mit folgendem Inhalt:

    Zeile A
    Zeile B

Nach dem Ausführen des Skripts wird der Inhalt folgendermaßen aussehen:

  • Beispiel1.txt:

    Beispiel1.txt Zeile 1
    Beispiel1.txt Zeile 2
  • Beispiel2.txt:

    Beispiel2.txt Zeile A
    Beispiel2.txt Zeile B

Tipps für Profis

  • Achte darauf, regelmäßig Backups Deiner .txt dateien zu erstellen, bevor Du umfangreiche Änderungen vornimmst.
  • Nutze die Datei.Exists-Methode, um sicherzustellen, dass die .txt datei existiert, bevor Du versuchst, sie zu lesen oder zu schreiben.
  • Experimentiere mit der Anpassung des Skripts, um zusätzliche Informationen wie das Änderungsdatum der Datei hinzuzufügen.

FAQ: Häufige Fragen

1. Was ist eine .txt-Datei?
Eine .txt-datei ist eine einfache Textdatei, die unformatierten Text speichert. Sie kann von vielen Programmen gelesen und bearbeitet werden.

2. Kann ich das Skript auch für andere Dateiformate verwenden?
Ja, Du kannst ähnliche Skripte für andere Textformate anpassen, jedoch musst Du sicherstellen, dass die Methoden zum Öffnen und Schreiben in die Datei korrekt angepasst werden.

3. Welche Excel-Version wird benötigt?
Das Skript sollte in den meisten Versionen von Excel funktionieren, die VBA unterstützen, einschließlich Excel 2010 und neuer.

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