Werte aus Textfile in Excel einlesen

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