AW: TXT in Excel importieren
18.05.2015 17:24:57
Michael
Hi Melissa,
mit X365 kann ich Dir nicht dienen, aber X2000 wird es schon auch tun...
Das Makro:
Option Explicit
Sub Text_Lesen()
' da kann man noch errorhandling einbauen wie z.B.
' in http://vba1.de/vba/051dateiimport.php
' und im Forum stöbern nach Datei öffnen Dialog oder so
Dim Datei%, zeile%, p%, l%
Dim Pfad$, gelesen$
Dim zl_arr As Variant
Pfad = ThisWorkbook.Path & "\TextDateiLesen.txt"
Datei = FreeFile
zeile = 2
Open Pfad For Input As #Datei
While Not EOF(Datei)
Line Input #Datei, gelesen
'Debug.Print gelesen
If Len(gelesen) > 50 Then
zl_arr = Split(gelesen, "|")
Range("A" & zeile).Value = Trim(LTrim(zl_arr(0)))
Range("B" & zeile).Value = Trim(LTrim(zl_arr(1)))
' reine Sicherheitsmaßnahme, falls Bemerkung nicht vorh.
If UBound(zl_arr) > 2 Then
Range("G" & zeile).Value = "'" & Trim(LTrim(zl_arr(3)))
' Excel meckert, falls Zelle mit "+" beginnt
End If
gelesen = Trim(LTrim(zl_arr(2)))
l = Len(gelesen)
Range("f" & zeile).Value = Mid(gelesen, l - 4, 5)
p = InStr(gelesen, "->")
Range("c" & zeile).Value = Trim(Mid(gelesen, 1, p - 7))
Range("d" & zeile).Value = Mid(gelesen, p - 5, 5)
Range("e" & zeile).Value = Trim(LTrim(Mid(gelesen, p + 2, l - 5 - p - 2)))
zeile = zeile + 1
End If
Wend
Close #Datei
End Sub
Die Datei: https://www.herber.de/bbs/user/97704.xls
In Sachen Zahl, Textx entspricht die Beispieldatei nicht den oben gemachten Angaben. Schlimmstenfalls muß man hier noch ne if-Verzweigung anbringen (je nach dem, ob es mit + beginnt oder so) und das in zwei Spalten aufteilen. Mit dem vorhandenen Code bringst Du das evtl. selbst hin.
Schöne Grüße,
Michael