Live-Forum - Die aktuellen Beiträge
Datum
Titel
16.10.2025 17:40:39
16.10.2025 17:25:38
Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender

Forumthread: Textdatei öffnen bearbeiten und schließen

Textdatei öffnen bearbeiten und schließen
31.05.2017 06:00:59
Furkan
Hallo zusammen, ich hab eine frage
ich möchte in einer vorhandenen textdatei ein bestimmtes zeichen in dem fall "." in einer zeile zählen danach je nach anzahl der zeichen meinen string in die selbe oder in die nächste zeile hinzufügen und die datei schließen. ich habe vb 2010 express
irgendwie funktioniert es nicht. ich habe nicht einmal die datei öffnen oder bearbeiten können. besten dank im vorraus
Private Sub Adden()
Dim zeile As String
FileOpen(1, "C:\Users\Furkan\Desktop\data.txt", OpenMode.Input)
FileOpen(2, "‪C:\Users\Furkan\Desktop\data.txt", OpenMode.Output)
Do While Not EOF(1)
zeile = LineInput(1)
Dim pos As Integer = InStr(1, zeile, ".")
If pos = 3 Then
zeile = Replace(zeile, Chr(10), vbCrLf)
PrintLine(2, zeile & teil(0))
Else
PrintLine(2, zeile & " " & teil(0))
End If
Loop
FileClose(1)
FileClose(2)
End Sub

Anzeige

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

Betreff
Datum
Anwender
Anzeige
AW: Textdatei öffnen bearbeiten und schließen
31.05.2017 22:11:06
Pit
Hi Furkan, einfacher Ansatz:
Sub Adden()
Dim  FName, FName_1 As String, i As Integer
Dim Satz(1000) As String ' ungefähre länge der Textdatei wenn gewollt mit redim..
FName = "c:\textdatei.txt"
FName_1 = "c:\textdatei_1.txt"
Open FName For Input As #1
Open FName_1 For Output As #2  ' neuer Dateiname!!
i = 1
Do While Not EOF(1)
Input #1, Satz(i)
Debug.Print Satz(i)
' Hier die veränderung vornehmen und dann in neue Datei schreiben
' If Satz(i) then ................
Print #2, Satz(i)
i = i + 1
Loop
Close #1
Close #2
End Sub

Anzeige
AW: Textdatei öffnen bearbeiten und schließen
01.06.2017 05:02:30
fcs
Hallo Furkan,
ich hab hier jetzt keine VB-Version.
Unter VBA für Excel muss das Makro wie folgt aussehen.
In deinem Makro ist ein grundsätzliche Problem:
Du kannst nicht die gleiche Datei für Input und Output öffnen.
Weiter ist die Frage: Was ist teil(0)?
Wird diese Variable in einem anderen Makro gefüllt und ist im Modul als Private oder Public deklariert?
Die Anzahl der Zeichn in einem Text musst du auch anders ermitteln.
Die Funktion InStr ermittelt die Position eines Textes in einem anderen Text.
Evtl. findest du ja die passenden Anweisungen, um das Makro von VBA auf VB umzuschreiben.
Gruß
Franz
'VBA-Code erstellt unter Excel 2010
Option Explicit
Public teil(0 To 3) As String
'Private Sub Adden()
Sub Adden()
Dim zeile As String
Dim FF1 As Integer, FF2 As Integer
Dim pos As Integer, AnzPunkte As Integer
Dim strFind As String, strReplace As String
Dim strFile1 As String, strFile2 As String
On Error GoTo Fehler
teil(0) = "##Einfüge-Text##" 'Testzeile
strFile1 = "C:\Users\Furkan\Desktop\data.txt" 'Name Original-Textdatei
strFile2 = "C:\Users\Furkan\Desktop\tempdatatemp.txt" 'Name temporäre Textdatei
strFile1 = "C:\Users\Admin\Desktop\data.txt" 'Name Original-Textdatei
strFile2 = "C:\Users\Admin\Desktop\tempdatatemp.txt" 'Name temporäre Textdatei
FF1 = FreeFile()
Open strFile1 For Input As #FF1
FF2 = FreeFile()
Open strFile2 For Output As #FF2
strFind = Chr(10)
strReplace = vbCrLf
Do While Not EOF(FF1)
'Zeile einlesen
Line Input #FF1, zeile
'Position von "." suchen
pos = InStr(1, zeile, ".")
AnzPunkte = 0
If pos > 0 Then
'Anzahl Punkte in Zeilen-Text berechnen
AnzPunkte = Len(zeile) - Len(Replace(zeile, ".", ""))
End If
If Len(zeile) > 0 Then
'Anzahl Punkte prüfen und ggf.  Text modifizierten
Select Case AnzPunkte
Case 0
'Text nicht modifizieren
Case 3
zeile = VBA.Replace(zeile, strFind, strReplace, compare:=vbBinaryCompare)
zeile = zeile & teil(0) ' was ist teil(0)
Case Else
zeile = zeile & " " & teil(0)
End Select
End If
Print #FF2, zeile
Loop
Close FF1
Close FF2
'Original-Datei löschen
VBA.Kill strFile1
'temporäre Datei umbenennen in Name der Originaldatei
Name strFile2 As strFile1
'ggf. temporäre Datei wieder löschen
If Dir(strFile2)  "" Then VBA.Kill strFile2
Fehler:
With Err
Select Case .Number
Case 0
Case Else
MsgBox "Fehler-nr.: " & .Number & vbLf & .Description
Close
End Select
End With
End Sub

Anzeige
;

Forumthreads zu verwandten Themen

Anzeige
Anzeige
Anzeige
Anzeige
Anzeige

Infobox / Tutorial

Textdatei öffnen, bearbeiten und schließen in Excel VBA


Schritt-für-Schritt-Anleitung

  1. Öffne die Excel-Anwendung und aktiviere den VBA-Editor mit ALT + F11.

  2. Erstelle ein neues Modul: Rechtsklick auf "VBAProject" > "Einfügen" > "Modul".

  3. Füge den folgenden VBA-Code ein, um eine Textdatei zu öffnen und zu bearbeiten:

    Option Explicit
    Public teil(0 To 3) As String
    
    Sub Adden()
       Dim zeile As String
       Dim FF1 As Integer, FF2 As Integer
       Dim pos As Integer, AnzPunkte As Integer
       Dim strFind As String, strReplace As String
       Dim strFile1 As String, strFile2 As String
    
       On Error GoTo Fehler
       teil(0) = "##Einfüge-Text##" 'Testzeile
       strFile1 = "C:\Users\Furkan\Desktop\data.txt" 'Name Original-Textdatei
       strFile2 = "C:\Users\Furkan\Desktop\tempdatatemp.txt" 'Name temporäre Textdatei
    
       FF1 = FreeFile()
       Open strFile1 For Input As #FF1
       FF2 = FreeFile()
       Open strFile2 For Output As #FF2
    
       Do While Not EOF(FF1)
           Line Input #FF1, zeile
           pos = InStr(1, zeile, ".")
           AnzPunkte = 0
           If pos > 0 Then
               AnzPunkte = Len(zeile) - Len(Replace(zeile, ".", ""))
           End If
           If Len(zeile) > 0 Then
               Select Case AnzPunkte
                   Case 0
                       'Text nicht modifizieren
                   Case 3
                       zeile = zeile & teil(0) ' hinzugefügt
                   Case Else
                       zeile = zeile & " " & teil(0)
               End Select
           End If
           Print #FF2, zeile
       Loop
       Close FF1
       Close FF2
       VBA.Kill strFile1
       Name strFile2 As strFile1
       If Dir(strFile2) <> "" Then VBA.Kill strFile2
       Exit Sub
    
    Fehler:
       MsgBox "Fehler-nr.: " & Err.Number & vbLf & Err.Description
       Close
    End Sub
  4. Passe den Dateipfad an, um sicherzustellen, dass er auf deine Textdatei zeigt.

  5. Führe das Makro aus, um die Textdatei zu bearbeiten und zu schließen.


Häufige Fehler und Lösungen

  • Fehler beim Öffnen der Datei: Stelle sicher, dass der Dateipfad korrekt ist und die Datei nicht von einem anderen Programm verwendet wird.
  • Die gleiche Datei für Input und Output öffnen: Dies ist nicht erlaubt. Verwende immer eine temporäre Datei zum Schreiben.
  • Variable teil(0) nicht definiert: Achte darauf, dass diese Variable korrekt initialisiert ist, bevor du sie verwendest.

Alternative Methoden

Falls du keine VBA-Programmierung nutzen möchtest, kannst du auch andere Tools verwenden, um TXT-Dateien zu bearbeiten:

  • Notepad++: Ein einfacher Texteditor, der die Bearbeitung von TXT-Dateien erleichtert.
  • Python-Skripte: Verwende Python mit der pandas-Bibliothek, um TXT-Dateien zu öffnen und zu bearbeiten.

Praktische Beispiele

Hier sind einige Anwendungsbeispiele für das Öffnen und Bearbeiten von TXT-Dateien mit VBA:

  1. Zählen der Punkte in einer Zeile:

    Dim AnzPunkte As Integer
    AnzPunkte = Len(zeile) - Len(Replace(zeile, ".", ""))
  2. Text an das Ende einer Zeile hinzufügen:

    zeile = zeile & " " & teil(0)

Diese Beispiele zeigen, wie du mit VBA für Excel Textdateien effektiv bearbeiten kannst.


Tipps für Profis

  • Verwende Option Explicit, um sicherzustellen, dass alle Variablen deklariert sind. Dies hilft, Fehler zu vermeiden.
  • Nutze Error Handling, um im Falle eines Fehlers saubere Rückgaben zu erhalten und die Benutzerfreundlichkeit zu erhöhen.
  • Experimentiere mit VBA-Texteditoren, um deine Erfahrung mit dem Öffnen und Bearbeiten von Textdateien zu verbessern.

FAQ: Häufige Fragen

1. Was ist eine Textdatei? Eine Textdatei ist eine Datei, die einfaches Textformat speichert und keine speziellen Formatierungen hat.

2. Wie kann ich eine TXT-Datei mit Excel öffnen? Du kannst eine TXT-Datei in Excel öffnen, indem du auf Daten > Daten abrufen > Aus Text/CSV gehst und den gewünschten Textdateipfad auswählst.

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