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

In Textfile bestimmte Zeilen suchen und löschen

Forumthread: In Textfile bestimmte Zeilen suchen und löschen

In Textfile bestimmte Zeilen suchen und löschen
20.08.2013 15:45:38
Pascal
Guten Tag
Kann mir jemand sagen, wie in per VBA in einem Textfile nach bestimmten Zeilen suche und diese aus dem Textfile rauslösche ?
Konkret:
in einem langen Textfile sollen alle Zeilen die den Text "abgBet¦ Fehlermeldung" beinhalten gelöscht werden.
Bin für jeden Hinweis dankbar

Anzeige

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

Betreff
Datum
Anwender
Anzeige
AW: In Textfile bestimmte Zeilen suchen und löschen
20.08.2013 15:56:34
Pascal
Hallo Balder
Besten Dank für den Link
aber ... vermutlich wurde meine Frage falsch verstanden.
Ich will die gefundenen Zeilen nicht nach Excel importieren, sondern einfach aus dem Textfile rauslöschen.
Sozusagen will ich bloss meine Textdatei öffnen, nach bestimmten Zeilen durchsuchen, diese Zeilen löschen und die Textdatei anschliessend wieder schliessen und speichern.

Anzeige
AW: In Textfile bestimmte Zeilen suchen und löschen
20.08.2013 16:09:20
Balder
Hey Pascal,
nein nein; Ich habe die Frage nicht falsch verstanden. Das Programm ist deinem Problem sehr ähnlich und ich dachte, dass du es dir dann nach deinen Wünschen umbaust.
Gruß Balder
http://www.youtube.com/BaldersWelt

Anzeige
AW: In Textfile bestimmte Zeilen suchen und löschen
20.08.2013 16:11:00
Pascal
Tja... ich versuche ... aber .... :-(
bisher kein Erfolg

AW: In Textfile bestimmte Zeilen suchen und löschen
20.08.2013 18:01:36
Balder
Hey Pascal,
probier doch mal das hier:
Sub testung()
Set MyFiles = CreateObject("Scripting.FileSystemObject")
Const ForReading = 1, ForWriting = 2
varDatei = "C:\Users\Balder\Desktop\test.txt" 'Pfad anpassen!!!!
vartmpdatei = "C:\temp.txt"
Set fin = MyFiles.OpenTextFile(varDatei, ForReading)
Set fout = MyFiles.OpenTextFile(vartmpdatei, ForWriting, True)
strSearch = "abgBet¦ Fehlermeldung" 'Suche ggf anpassen!!!!
Do While Not fin.AtEndOfStream
strline = fin.readLine()
If InStr(1, strline, strSearch) = 0 Then
fout.writeline strline
End If
Loop
fin.Close
fout.Close
MyFiles.DeleteFile (varDatei)
MyFiles.CopyFile vartmpdatei, varDatei
Kill vartmpdatei
End Sub
Gruß Balder
http://www.youtube.com/BaldersWelt

Anzeige
AW: In Textfile bestimmte Zeilen suchen und löschen
21.08.2013 08:26:37
Pascal
Besten Dank für den Code
ich werde den gleich mal testen
;
Anzeige
Anzeige

Infobox / Tutorial

Bestimmte Zeilen in einem Textfile mit VBA suchen und löschen


Schritt-für-Schritt-Anleitung

Um bestimmte Zeilen in einem Textfile zu suchen und zu löschen, kannst Du den folgenden VBA-Code verwenden. Dieser Code öffnet das Textfile, durchsucht jede Zeile nach einem bestimmten Text und löscht die Zeilen, die diesen Text enthalten.

  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 Code in das Modul ein:
Sub testung()
    Set MyFiles = CreateObject("Scripting.FileSystemObject")
    Const ForReading = 1, ForWriting = 2
    varDatei = "C:\Users\DeinBenutzername\Desktop\test.txt" ' Pfad anpassen!!!!
    vartmpdatei = "C:\temp.txt"
    Set fin = MyFiles.OpenTextFile(varDatei, ForReading)
    Set fout = MyFiles.OpenTextFile(vartmpdatei, ForWriting, True)
    strSearch = "abgBet¦ Fehlermeldung" ' Suche ggf anpassen!!!!

    Do While Not fin.AtEndOfStream
        strline = fin.readLine()
        If InStr(1, strline, strSearch) = 0 Then
            fout.writeline strline
        End If
    Loop

    fin.Close
    fout.Close
    MyFiles.DeleteFile (varDatei)
    MyFiles.CopyFile vartmpdatei, varDatei
    Kill vartmpdatei
End Sub
  1. Passe die Variablen varDatei und vartmpdatei entsprechend Deinem Dateipfad an.
  2. Schließe den VBA-Editor und führe das Makro aus.

Häufige Fehler und Lösungen

  • Fehler: "Datei nicht gefunden"

    • Stelle sicher, dass der Dateipfad korrekt angegeben ist und die Datei existiert.
  • Fehler: "Zugriff verweigert"

    • Überprüfe die Berechtigungen der Datei und des Ordners. Stelle sicher, dass Du die nötigen Berechtigungen hast, um die Datei zu lesen und zu löschen.
  • Fehler: "Syntaxfehler" im VBA-Code

    • Achte darauf, dass Du den Code korrekt kopiert hast und keine Zeilen fehlen oder falsch formatiert sind.

Alternative Methoden

Wenn Du kein VBA verwenden möchtest, kannst Du auch einen Texteditor wie Notepad++ nutzen:

  1. Öffne das Textfile in Notepad++.
  2. Benutze die Funktion "Suchen" -> "Ersetzen" (Strg + H).
  3. Gib den Text ein, den Du löschen möchtest.
  4. Wähle "Ersetzen" und lasse das Feld für die Ersetzung leer.
  5. Klicke auf "Alle ersetzen".

Diese Methode ist einfach, erfordert jedoch manuelle Eingriffe und ist nicht so automatisiert wie VBA.


Praktische Beispiele

Angenommen, Du hast ein Textfile mit folgendem Inhalt:

Zeile 1
abgBet¦ Fehlermeldung
Zeile 3
abgBet¦ Fehlermeldung
Zeile 5

Nach dem Ausführen des Makros wird das Textfile so aussehen:

Zeile 1
Zeile 3
Zeile 5

Das Makro entfernt alle Zeilen, die den Text "abgBet¦ Fehlermeldung" enthalten.


Tipps für Profis

  • Backup erstellen: Vor dem Löschen von Daten solltest Du immer ein Backup des Originals erstellen.
  • Variablen flexibel gestalten: Du kannst die Suchvariable strSearch dynamisch anpassen, um verschiedene Texte zu suchen, ohne den gesamten Code ändern zu müssen.
  • Fehlerbehandlung einfügen: Implementiere Error-Handling in Deinem VBA-Code, um unerwartete Fehler besser zu managen.

FAQ: Häufige Fragen

1. Kann ich die Suche nach mehreren Begriffen durchführen?
Ja, Du kannst den Code anpassen, um mehrere Begriffe zu durchsuchen, indem Du eine Schleife verwendest.

2. Funktioniert dieser Code in Excel für Mac?
Der VBA-Code ist primär für Windows ausgelegt. Auf Mac kann es zu Einschränkungen kommen, da die FileSystemObject-Bibliothek möglicherweise nicht verfügbar ist.

3. Was passiert, wenn ich versehentlich die falsche Zeile lösche?
Wenn Du ein Backup erstellt hast, kannst Du die ursprüngliche Datei schnell wiederherstellen. Achte darauf, immer Sicherungskopien zu haben, bevor Du Änderungen vornimmst.

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige