Live-Forum - Die aktuellen Beiträge
Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender

Forumthread: Textdatei öffnen und bearbeiten mit VBA

Textdatei öffnen und bearbeiten mit VBA
19.10.2004 10:11:01
-Sarah-
Hallo,
da ich sehr unwissend bzgl VBA-Programmierung bin, hoffe ich das mir jemand weiterhelfen kann.
Ich muss aus einer Excel-Datei 'A.xls' eine Nummer suchen und in einem anderen Ordner zu dieser nummer die passende Textdatei. (Nummer ist 23111, Textdatei heißt 23111.txt)
ich weiß leider nicht, wie ich die Textdatei öffne und wie ich dann weiter damit verfahre. Aus der Textdatei muss ich Daten heraussuchen, die dann in die A.xls eingefügt werden sollen.
Ich hab jetzt ein bischen recheriert, bin aber nicht schlüssig geworden, ob ich jede Textdatei ersteinmal nach Excel imporieren muss und dann nach meinen Daten in jeder Zeile suchen sollte oder ob die Möglichkeit besteht, die Textdatei zu öffnen und darin zu suchen.
Vielleicht hat jemand sowas schon mal gemacht und könnte mir weiterhelfen.
Vielen Dank schonmal, Sarah
Anzeige

5
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Textdatei öffnen und bearbeiten mit VBA
tobias
Hallo
wie sieht die Tetxtdatei denn aus? Stehen die Daten z.B. mit Semikolon oder mit Delimiter...
mfg tobias
AW: Textdatei öffnen und bearbeiten mit VBA
19.10.2004 11:09:44
-Sarah-
Die Daten, die ich haben will schauen so aus:
Mk Q Buchungszeit Endezeit Name
PAUX (W) 22.07.04 11:19 - 22.07.04 15:00 H. MEYER
PAUX (O) 22.07.04 11:04 - 22.07.04 11:19 H. MEYER
FSR4 (W) 22.07.04 09:47 - 22.07.04 09:54 FSR4
Mfg, Sarah
Anzeige
AW: Textdatei öffnen und bearbeiten mit VBA
tobias
Hallo
hier einmal ein Beispiel zum einlesen von Textdateien:
Dim ReadFile As String, rcount as Long
Dim Fso As Object, TextDat As Object
ReadFile = Application.GetOpenFilename("Dateityp (*.txt; *.log; *.dat),")
If ReadFile = "Falsch" Then Exit Sub
Close #1

Set Fso = CreateObject("Scripting.FileSystemObject")
Set TextDat = Fso.OpenTextFile(ReadFile, 1, False)
Do While TextDat.AtEndOfStream True
rcount = rcount + 1
Worksheets("xyz").Cells(rcount, 1) = TextDat.ReadLine
Loop
TextDat.Close
mfg tobias
Anzeige
AW: Textdatei öffnen und bearbeiten mit VBA
19.10.2004 13:07:05
-Sarah-
Danke ersteinmal.
Aber eine Frage:
Les ich bei deiner version jede Zeile einzeln aus der Textdatei aus?bis der Dateizeiger am Ende der Datei steht? Dann kann ich doch den eingelesenen String mit meinen gesuchten Daten vergleichen oder?
mfg, sarah
AW: Textdatei öffnen und bearbeiten mit VBA
tobias
Hallo
ja, genau.
z.B.
...
Do While TextDat.AtEndOfStream True
rcount = rcount + 1
Text = TextDat.ReadLine
if text = "Hallo" Then
Worksheets("xyz").Cells(rcount, 1)= text
end if
Loop
...
mfg tobias
Anzeige
;

Forumthreads zu verwandten Themen

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

Textdatei mit VBA in Excel öffnen und bearbeiten


Schritt-für-Schritt-Anleitung

Um eine Textdatei mit VBA in Excel zu öffnen und zu bearbeiten, befolge diese Schritte:

  1. VBA-Editor öffnen: Drücke ALT + F11, um den VBA-Editor zu starten.

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

  3. Code einfügen: Füge den folgenden Code in das Modul ein:

    Sub TextdateiOeffnen()
       Dim ReadFile As String, rcount As Long
       Dim Fso As Object, TextDat As Object
    
       ' Dateiauswahl-Dialog öffnen
       ReadFile = Application.GetOpenFilename("Dateityp (*.txt; *.log; *.dat),")
       If ReadFile = "Falsch" Then Exit Sub
    
       ' FileSystemObject erstellen
       Set Fso = CreateObject("Scripting.FileSystemObject")
       Set TextDat = Fso.OpenTextFile(ReadFile, 1, False)
    
       rcount = 0
       ' Zeilen aus der Textdatei lesen
       Do While Not TextDat.AtEndOfStream
           rcount = rcount + 1
           Worksheets("xyz").Cells(rcount, 1) = TextDat.ReadLine
       Loop
    
       TextDat.Close
    End Sub
  4. Makro ausführen: Schließe den VBA-Editor, gehe zurück zu Excel, drücke ALT + F8, wähle TextdateiOeffnen und klicke auf Ausführen.


Häufige Fehler und Lösungen

  • Fehler: „Falsch“ wird als Dateipfad zurückgegeben.

    • Lösung: Stelle sicher, dass Du tatsächlich eine Datei auswählst und den richtigen Dateityp auswählst.
  • Fehler: Der Dateizeiger bewegt sich nicht.

    • Lösung: Überprüfe, ob die Bedingung Not TextDat.AtEndOfStream korrekt formuliert ist.
  • Fehler: Daten werden nicht korrekt in die Excel-Datei eingefügt.

    • Lösung: Achte darauf, dass das Arbeitsblatt „xyz“ existiert und die Zellen nicht gesperrt sind.

Alternative Methoden

Wenn Du die Textdatei nicht über VBA öffnen möchtest, kannst Du auch:

  • Daten importieren: Gehe zu Daten > Aus Text/CSV, um die Textdatei direkt in Excel zu importieren.
  • Power Query verwenden: Nutze Power Query, um die Daten aus der Textdatei zu extrahieren, zu transformieren und in Excel zu laden.

Praktische Beispiele

Ein Beispiel, um eine bestimmte Zeile aus der Textdatei zu suchen und in die Excel-Datei zu übertragen:

Do While Not TextDat.AtEndOfStream
    Dim Text As String
    Text = TextDat.ReadLine
    If InStr(Text, "gesuchter Begriff") > 0 Then
        rcount = rcount + 1
        Worksheets("xyz").Cells(rcount, 1) = Text
    End If
Loop

Hier wird jede Zeile überprüft, und nur die Zeilen, die den „gesuchten Begriff“ enthalten, werden in die Excel-Datei eingefügt.


Tipps für Profis

  • Nutze die vba readline-Methode für eine effizientere Verarbeitung von großen Textdateien.
  • Verwende asc datei öffnen, um die Datei im ASCII-Format zu lesen, wenn Du mit speziellen Zeichencodierungen arbeitest.
  • Implementiere Fehlerbehandlungsroutinen, um den Code robuster zu machen.

FAQ: Häufige Fragen

1. Wie öffne ich eine .txt-Datei mit VBA?
Verwende die OpenTextFile Methode des FileSystemObject, um eine .txt-Datei zu öffnen.

2. Wie kann ich eine Textdatei bearbeiten?
Du kannst den Inhalt der Textdatei zeilenweise lesen, bearbeiten und die Änderungen speichern, indem Du die WriteLine oder Print Methoden verwendest.

3. Was ist der Unterschied zwischen AtEndOfStream und ReadLine?
AtEndOfStream überprüft, ob das Ende der Datei erreicht ist, während ReadLine die aktuelle Zeile aus der Textdatei liest.

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