TXT in Excel importieren

Bild

Betrifft: TXT in Excel importieren
von: Melissa
Geschrieben am: 16.05.2015 19:59:25

Hallo zusammen,
ich bräuche mal Hilfe bei einem kleinen Skript, welches ich benötige. Ich habe ein Textfile, welches folgendermaßen aussieht:
Userbild
Oben sieht man wie gesagt, wie es in dem normalen Logfile aussieht. So wie unten sollte es dann in Excel importiert werden, sodass in jeder Spalte nur eine Info steht.
Es wäre klasse, wenn mir da jemand ein kleines Skript schreiben könnte. :)
Gruß
Melissa

Bild

Betrifft: AW: TXT in Excel importieren
von: Oberschlumpf
Geschrieben am: 17.05.2015 03:55:16
Hi Melissa
sieht es in der txt-Datei wirklich genau so aus, wie du es zeigst?
Ist also an genau den Stellen überall das Zeichen | ?
Wenn nein, zeig uns die txt-Datei bitte per Upload.
Ciao
Thorsten

Bild

Betrifft: AW: TXT in Excel importieren
von: Melissa
Geschrieben am: 17.05.2015 17:16:23
Hallo Thorsten,
ja die Datei sieht immer so aus wie ganz oben, nur das halt immer andere Werte drin stehen. Aber der Aufbau ist wie gesagt gleich.
Hab mal ein kleines Textfile angehangen:
https://www.herber.de/bbs/user/97685.txt

Bild

Betrifft: AW: TXT in Excel importieren
von: Michael
Geschrieben am: 18.05.2015 17:24:57
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

 Bild

Beiträge aus den Excel-Beispielen zum Thema "TXT in Excel importieren"