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

Forumthread: Textdatei ändern

Textdatei ändern
15.12.2007 15:15:06
ioannis
Hallo zusammen,
es ist mit VBA möglich eine TextDatei ForReading, ForWriting oder ForAppending zu öffnen. Ich versuche aber, nachdem die Textdatei in Excel eingelesen und bearbeitet wurde, sie direkt aus Excel an bestimmten Stellen zu ändern. Dafür muss ich sie zeilenweise lesen und gleichzeitig ändern. Geht das?
Ich bedanke mich für die Unterstützung.
Freundliche Grüsse
Ioannis

Anzeige

2
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Textdatei ändern
15.12.2007 15:48:00
Peter
Hallo Ioannes,
hier ein Makro-Beispiel, wie es gehen könnte.

Sub ZeilenMit10Aendern()
Dim Datei      As String
Dim Temp       As String
Dim Text       As String
Dim AnzStelle  As Integer
Dim Stelle     As Integer
Dim Zeile      As String
Datei = "C:\Temp\Daten10oder20.txt"  ' Name der Textdatei
Temp = Datei & ".tmp"                ' temporäre Datei
Stelle = 128    ' ab Stelle 128
AnzStelle = 3   ' 3 Zeichen ersetzen
Text = "XYZ"    ' der Text, der eingefügt werden soll
Open Datei For Input As 1  ' Textdatei zum Lesen öffnen
Open Temp For Output As 2  ' TEMP-Datei zum Schreiben öffnen
While Not EOF(1)
Line Input #1, Zeile    ' Zeile einlesen
If Left(Zeile, 2) = "10" Then ' wenn die Zeile mit "10" beginnt
Zeile = Left(Zeile, Stelle - 1) & Text & _
Mid(Zeile, Stelle + AnzStelle, Len(Zeile))
End If
Print #2, Zeile         ' Zeile in TEMP-Datei schreiben
Wend
Close                      ' alle Dateien schließen
'   ACHTUNG : Hier wird die TEXTDATEI gelöscht und durch die TEMPORÄRE Datei ersetzt :
Kill Datei
Name Temp As Datei
End Sub


Gruß Peter

Anzeige
AW: Textdatei ändern
15.12.2007 22:04:00
ioannis
Vielen Dank für die schnelle und kompetente Antwort.
Ioannis
;

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 direkt aus Excel ändern


Schritt-für-Schritt-Anleitung

Um eine Textdatei direkt aus Excel zu ändern, kannst du ein VBA-Makro verwenden. Folge diesen Schritten:

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

  2. Erstelle ein neues Modul:

    • Klicke auf "Einfügen" > "Modul".
  3. Füge den folgenden Code ein:

    Sub ZeilenMit10Aendern()
        Dim Datei      As String
        Dim Temp       As String
        Dim Text       As String
        Dim AnzStelle  As Integer
        Dim Stelle     As Integer
        Dim Zeile      As String
        Datei = "C:\Temp\Daten10oder20.txt"  ' Name der Textdatei
        Temp = Datei & ".tmp"                 ' temporäre Datei
        Stelle = 128    ' ab Stelle 128
        AnzStelle = 3   ' 3 Zeichen ersetzen
        Text = "XYZ"    ' der Text, der eingefügt werden soll
        Open Datei For Input As 1  ' Textdatei zum Lesen öffnen
        Open Temp For Output As 2  ' TEMP-Datei zum Schreiben öffnen
        While Not EOF(1)
            Line Input #1, Zeile    ' Zeile einlesen
            If Left(Zeile, 2) = "10" Then ' wenn die Zeile mit "10" beginnt
                Zeile = Left(Zeile, Stelle - 1) & Text & _
                Mid(Zeile, Stelle + AnzStelle, Len(Zeile))
            End If
            Print #2, Zeile         ' Zeile in TEMP-Datei schreiben
        Wend
        Close                      ' alle Dateien schließen
        '   ACHTUNG : Hier wird die TEXTDATEI gelöscht und durch die TEMPORÄRE Datei ersetzt :
        Kill Datei
        Name Temp As Datei
    End Sub
  4. Ändere den Pfad zu deiner Textdatei in der Zeile Datei = "C:\Temp\Daten10oder20.txt".

  5. Starte das Makro über F5 oder im Excel-Fenster.

Das Makro liest die Textdatei zeilenweise, ändert die Zeilen, die mit "10" beginnen, und speichert die Änderungen.


Häufige Fehler und Lösungen

  • Datei nicht gefunden: Stelle sicher, dass der angegebene Pfad zur Textdatei korrekt ist. Überprüfe, ob die Datei existiert.
  • Zugriffsverletzung: Wenn die Datei in einem anderen Programm geöffnet ist, kann Excel sie nicht bearbeiten. Schließe alle anderen Programme, die auf die Datei zugreifen.
  • Syntaxfehler: Achte darauf, dass der VBA-Code korrekt eingegeben wurde. Ein fehlerhaftes Zeichen oder eine fehlende Zeile kann zu einem Fehler führen.

Alternative Methoden

Wenn du keine VBA-Programmierung verwenden möchtest, gibt es auch andere Möglichkeiten:

  1. Power Query: Mit Power Query kannst du Daten importieren, transformieren und wieder exportieren, ohne VBA zu verwenden.
  2. Texteditor: Du kannst die Textdatei auch manuell in einem Texteditor ändern und sie anschließend wieder in Excel importieren.

Praktische Beispiele

Hier sind einige praktische Beispiele für die Verwendung des Makros:

  • Ersetzen von Wörtern: Du kannst den Text in der Zeile anpassen, indem du die Variable Text änderst.
  • Ändern anderer Zeilen: Passe die Bedingung in If Left(Zeile, 2) = "10" Then an, um andere Zeilen zu ändern.
  • Daten aus einer Excel-Tabelle: Statt einen festen Text zu verwenden, kannst du auch einen Wert aus einer Excel-Zelle in die Textdatei einfügen.

Tipps für Profis

  • Backup erstellen: Erstelle immer eine Sicherungskopie deiner Textdatei, bevor du sie bearbeitest.
  • Fehlerprotokollierung: Füge eine Fehlerbehandlung in dein Makro ein, um Probleme besser zu identifizieren.
  • Performance optimieren: Bei großen Dateien kann es sinnvoll sein, die Verarbeitung in Blöcken vorzunehmen, anstatt die gesamte Datei auf einmal zu bearbeiten.

FAQ: Häufige Fragen

1. Wie kann ich das Makro anpassen, um mehrere Textdateien gleichzeitig zu bearbeiten? Du kannst eine Schleife hinzufügen, die durch ein Array von Dateinamen iteriert und das Makro auf jede Datei anwendet.

2. Funktioniert das Makro in Excel Online? Das VBA-Makro funktioniert nur in der Desktop-Version von Excel, da Excel Online keine VBA-Unterstützung bietet.

3. Kann ich das Makro auch für andere Dateiformate verwenden? Das Makro ist speziell für Textdateien konzipiert. Für andere Formate musst du möglicherweise den Code anpassen.

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