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

Zeichen in Textdatei suchen ersetzen.

Forumthread: Zeichen in Textdatei suchen ersetzen.

Zeichen in Textdatei suchen ersetzen.
15.08.2004 10:22:29
Michael Staller
Hallo
wie kann ich in einer Textdatei das "," durch einen ";" mit einem VBA-Makro ersetzen.
vielen Dank für die Hilfe
mfg
Michael Staller
Anzeige

1
Beitrag zum Forumthread
Beitrag zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Zeichen in Textdatei suchen ersetzen.
15.08.2004 10:44:18
Ramses
Hallo
die einfachste Variante:
TXT-Datei in NotePad öffnen, SUCHEN und ERSETZTEN, Speichern, Fertig
Aber das ist dir wahrscheinlich zu gewöhnlich ;-)

Sub Read_Extern_File_and_Replace_Signs()
'(C) Ramses
Dim i As Long, n As Integer
'Hilfsvariable für Anzahl Datensätze
Dim Text1 As String
'Variablen für den Array nötig
Dim txtlines As Long
'Für Office97 muss das Array TextArr als String definiert werden
'Entdeckt duch Gerd Z aus dem Herber Forum
Dim textArr As Variant
Dim ReadFile As String, tempStr As String
'Name der Datei in der die Semikola ersetzt werden sollen
ReadFile = "C:\Demo.csv"
Close #1
'1. Öffnen der Datei
'Den Namen und Pfad bitte anpassen
Open ReadFile For Input As #1
'Die anzahl ist nötig um die Grösse des Arrays zu deklarieren
'Zähler auf 0 setzen
txtlines = 0
Do While Not EOF(1)    ' Schleife bis Dateiende.
Input #1, Text1    ' Hilfsvariable zum einlesen verwenden
'Zähler hochzählen
txtlines = txtlines + 1
Loop
'Schliessen der Datei weil Dateiende erreicht wurde
Close #1
'Erneutes Öffnen um zum Dateianfang zu kommen
Open ReadFile For Input As #1    ' Datei zum Einlesen öffnen.
'Array neu auf die Anzahl der Linien initialisieren
ReDim textArr(txtlines)
'Einlesen der Dateien in das Array
For i = 1 To txtlines
'Zeile einlesen
Line Input #1, textArr(i)
'temporär übergeben
tempStr = textArr(i)
'Schleife um zu ersetzende Zeichen im String zu suchen
For n = 1 To Len(tempStr)
'zuerst wird das Komma gegen ein Semikolon ersetzt
If Mid(tempStr, n, 1) = "," Then
tempStr = Application.WorksheetFunction.Replace(tempStr, n, 1, ";")
End If
Next n
'Der korrigierte String wird wieder in das array zurückgeschrieben
textArr(i) = tempStr
Next i
'File schliessen
Close #1
'File zum schreiben wieder öffnen
Open ReadFile For Output As #1
For i = 1 To txtlines
'Array an die jeweilige Zeile zurückschreiben
Print #1, textArr(i)
Next i
'Schliessen
Close #1
'Alle Zeichen ersetzt :-))
End Sub


Gruss Rainer
Anzeige
;
Anzeige

Infobox / Tutorial

Zeichen in Textdatei suchen und ersetzen


Schritt-für-Schritt-Anleitung

Um in einer Textdatei Zeichen wie z.B. das Komma (,) durch ein Semikolon (;) zu ersetzen, kannst du ein VBA-Makro verwenden. Hier sind die Schritte, um dies zu erreichen:

  1. Öffne Excel und drücke ALT + F11, um den VBA-Editor zu öffnen.

  2. Klicke auf Einfügen und wähle Modul, um ein neues Modul zu erstellen.

  3. Kopiere den folgenden Code in das Modul:

    Sub Read_Extern_File_and_Replace_Signs()
        Dim i As Long, n As Integer
        Dim Text1 As String
        Dim txtlines As Long
        Dim textArr As Variant
        Dim ReadFile As String, tempStr As String
    
        ' Name der Datei in der die Semikola ersetzt werden sollen
        ReadFile = "C:\Demo.csv"
        Close #1
    
        ' Datei öffnen und Anzahl der Zeilen zählen
        Open ReadFile For Input As #1
        txtlines = 0
        Do While Not EOF(1)
            Input #1, Text1
            txtlines = txtlines + 1
        Loop
        Close #1
    
        ' Array initialisieren und Datei erneut öffnen
        ReDim textArr(txtlines)
        Open ReadFile For Input As #1
        For i = 1 To txtlines
            Line Input #1, textArr(i)
            tempStr = textArr(i)
            For n = 1 To Len(tempStr)
                If Mid(tempStr, n, 1) = "," Then
                    tempStr = Application.WorksheetFunction.Replace(tempStr, n, 1, ";")
                End If
            Next n
            textArr(i) = tempStr
        Next i
        Close #1
    
        ' Datei zum Schreiben wieder öffnen
        Open ReadFile For Output As #1
        For i = 1 To txtlines
            Print #1, textArr(i)
        Next i
        Close #1
    End Sub
  4. Passe den Dateipfad in ReadFile an, um auf deine Textdatei zu verweisen.

  5. Führe das Makro aus, um die Zeichen in der Textdatei zu ersetzen.


Häufige Fehler und Lösungen

  • Fehler: "Datei nicht gefunden"

    • Lösung: Stelle sicher, dass der Dateipfad korrekt ist und die Datei existiert.
  • Fehler: "Typenkonflikt"

    • Lösung: Achte darauf, dass die Datei im richtigen Format (z.B. CSV) vorliegt.

Alternative Methoden

Wenn du keine VBA-Makros verwenden möchtest, kannst du auch die Notepad-Methode verwenden:

  1. Öffne die Textdatei mit Notepad.
  2. Nutze die Funktion Strg + H, um das Fenster "Suchen und Ersetzen" zu öffnen.
  3. Gib das zu ersetzende Zeichen (,) und das neue Zeichen (;) ein.
  4. Klicke auf "Alle ersetzen" und speichere die Datei.

Praktische Beispiele

Angenommen, du hast eine CSV-Datei mit folgendem Inhalt:

Name,Alter,Stadt
Max,30,Berlin
Lisa,25,München

Nach dem Ausführen des Makros wird der Inhalt wie folgt aussehen:

Name;Alter;Stadt
Max;30;Berlin
Lisa;25;München

Tipps für Profis

  • Verwende VBA, um komplexere Such- und Ersetzungsoperationen durchzuführen, z.B. reguläre Ausdrücke.
  • Automatisiere den Prozess, indem du das Makro in regelmäßigen Abständen ausführst, wenn du häufig mit CSV-Dateien arbeitest.
  • Achte darauf, immer eine Sicherungskopie deiner Originaldateien zu erstellen, bevor du sie bearbeitest.

FAQ: Häufige Fragen

1. Wie kann ich mehrere Zeichen gleichzeitig ersetzen?
Du kannst das Makro so anpassen, dass es in einer Schleife mehrere If-Bedingungen verwendet, um verschiedene Zeichen zu ersetzen.

2. Funktioniert das auch mit anderen Dateiformaten?
Das VBA-Makro ist hauptsächlich für Textdateien (TXT, CSV) geeignet. Bei anderen Formaten kann es zu Problemen kommen.

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