Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1396to1400
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

.txt Datei auslesen und in Excel schreiben

.txt Datei auslesen und in Excel schreiben
23.12.2014 09:53:44
Björn
Hallo Vba Profis,
ich habe ene Frage zu folgendem Problem.
Ich möchte gerne eine bestehende Text-Datei (.txt) mit Hilfe eines Makros auslesen und den Inhalt in eine Excel-Datei schreiben. Die Herausforderung ist, dass nicht alle Zeilen der Textdatei geschrieben werden dürfen, sondern nur die Zeilen mit dem Anfangsbuchstaben B.
Folgendes Makro habe ich geschrieben, allerdings bekomme ich das Problem mit dem Filter nicht gelöst.
Hier das Makro:

Sub text_2()
Dim FFNR As Integer
Dim Zeile As Integer
Dim textline As String
Dim Pfad As String
Pfad = Application.GetOpenFilename("TXT, *.txt", , , , False)
If Right(Pfad, 3)  "txt" Then Exit Sub
FFNR = FreeFile
Open Pfad For Input Access Read As #FFNR
Do While Not EOF(FFNR)
Line Input #FFNR, textline
If IsNumeric(Left(textline, 1)) Then
Zeile = Zeile + 1
Cells(Zeile, 1).Value = textline
End If
Loop
Close #FFNR
End Sub

Die Struktur der Text-Datei ist folgende:
Text-Datei
some information...
B12345
B23456
H12345
B12345
some information
https://www.herber.de/bbs/user/94558.txt
Wie kann ich erfolgreich einen Filter implementieren, um nur die "B-Zeilen" zu schreiben?
Viele Grüße

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

Betreff
Datum
Anwender
Anzeige
AW: .txt Datei auslesen und in Excel schreiben
23.12.2014 10:10:50
ede
Hallo Björn,
dann solltest Du auch zeilenweise das erste Zeichen auf den Buchstaben "B" prüfen!!!!
If Left(textline, 1) = "B" Then
Zeile = Zeile + 1
Cells(Zeile, 1).Value = textline
Gruss

AW: .txt Datei auslesen und in Excel schreiben
23.12.2014 11:17:03
Tino
Hallo,
da ich gerade mit ADO etwas experimentiere, hier mal eine Variante zum testen.
Sub test()
Dim objCon As Object, objRec As Object
Dim strFile$, sFolder$, sConectString$
Dim sFilter$
Dim rngZiel As Range

sFilter = "B*"
Set rngZiel = Tabelle1.Range("A2")

Set objCon = CreateObject("ADODB.Connection")
Set objRec = CreateObject("ADODB.Recordset")

strFile = Application.GetOpenFilename("TXT, *.txt", , , , False)

sFolder = Left$(strFile, InStrRev(strFile, "\") - 1)
strFile = Right$(strFile, Len(strFile) - InStrRev(strFile, "\"))

sConectString = "Provider=Microsoft.Jet.OLEDB.4.0;" & _
 "Data Source=" & sFolder & ";" & _
 "Extended Properties=""text;HDR=YES;FMT=Delimited"""

objCon.Open sConectString

objRec.Open "SELECT * FROM " & strFile, objCon, 2, 1, 1

With rngZiel.Parent
    .Range(rngZiel, .Cells(.Rows.Count, 1)).ClearContents
End With

With objRec
    If Not .BOF Then
        If Not .EOF Then
            .Filter = "[" & .Fields(0).Name & "] Like '" & sFilter & "'"
            If Not .EOF Then
                rngZiel.CopyFromRecordset objRec
            End If
        End If
    End If
End With

On Error Resume Next
objRec.Close
Set objRec = Nothing
objCon.Close
Set objCon = Nothing
End Sub
Gruß Tino
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige