Ich möchte den Inhalt aller Textfiles (z.B. a1.txt, a2.txt usw.)eines Ordners nach Excel einlesen. Die Dateien haben alle den selben folgenden Aufbau.
Textfileinhalt:
DOCTYPE FAX
COMPUTERNAME dexxxx
PAGES 1
…
Als Ergebnis möchte ich in Excel pro Textzeile aus dem Textfile, eine Excel-Zeile (geteilt in zwei Spalten). Dabei sollte nach Möglichkeit der erste Teil jeder Textfile-Zeile in der ersten Excel-Spalte stehen und der zweite Teil in der zweiten Excel-Spalte. Für o.g. Textfile würde das etwa so aussehen:
SpalteA|SpalteB
DOCTYPE|FAX
COMPUTERNAME|dexxxx
…
Optimale wäre es noch, wenn ich wahlweise die Möglichkeit hätte nur einzelne Werte der Textfiles auszulesen. Also z.B. nur die Zeilen mit DOCTYPE.
Wie kann ich dieses Problem lösen?
Moin,
Ich möchte den Inhalt aller Textfiles (z.B. a1.txt, a2.txt
usw.)eines Ordners nach Excel einlesen. Die Dateien haben alle
den selben folgenden Aufbau.
Wie Du alle Files in eine Tabelle bekommst, weiß ich nicht, aber für die Aufteilung des Textes in Spalten gibt es unter „Daten“ „Text in Spalten“. Da kannst Du auch noch bestimmen, wodurch der Text geteilt sein soll.
Wolfgang
Hallo, Thomas!
Textfileinhalt:
DOCTYPE FAX
COMPUTERNAME dexxxx
PAGES 1
Festes Trennzeichen oder feste Spaltenbreite?
Sollen alle Dateien in eine Tabelle oder in verschiedene, für jede Tabelle eine?
Optimale wäre es noch, wenn ich wahlweise die Möglichkeit
hätte nur einzelne Werte der Textfiles auszulesen. Also z.B.
nur die Zeilen mit DOCTYPE.
Hier wäre vermutlich das sinnigste, die Dateien komplett einzulesen und anschließend über den Autofilter etwas auszuwählen. Dann müssen die Dateien nicht neu eingelesen werden, wenn Du statt DOCTYPE den COMPUTERNAME anzeigen willst.
Gruß, Manfred
Ich möchte den Inhalt aller Textfiles (z.B. a1.txt, a2.txt
usw.)eines Ordners nach Excel einlesen. Die Dateien haben alle
den selben folgenden Aufbau.
Textfileinhalt:
DOCTYPE FAX
COMPUTERNAME dexxxx
PAGES 1
…
Hi Thomas,
Option Explicit
'
Sub TxtEinlesen()
Dim F As Integer, ws As Worksheet, Zei As Long, Satz As String, S
Worksheets.Add
Set ws = ActiveSheet
On Error Resume Next
With Application.FileSearch
.NewSearch
.LookIn = "C:\My Documents"
.Filename = "\*.txt"
.SearchSubFolders = False
If .Execute \> 0 Then
For F = 1 To .FoundFiles.Count
Close
Open .FoundFiles(F) For Input As #1
While Not EOF(1)
Line Input #1, Satz
If InStr(Satz, "DOCTYPE") \> 0 Then
Zei = Zei + 1
ws.Cells(Zei, 1) = Satz
End If
Wend
Close #1
Next F
Columns("A:A").TextToColumns Destination:=Range("A1"), Space:=True, \_
FieldInfo:=Array(1, 1)
Else
MsgBox "Es wurden keine Dateien gefunden."
ws.Delete
End If
End With
End Sub
Gruß
Reinhard