Live-Forum - Die aktuellen Beiträge
Datum
Titel
17.10.2025 10:28:49
16.10.2025 17:40:39
Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

txt-Datei importieren

Forumthread: txt-Datei importieren

txt-Datei importieren
29.01.2016 10:02:26
Larissa
Hallo,
Ich möchte Daten aus einer txt-Datei in Excel kopieren und habe folgendes Makro gefunden:
Sub Datei_importieren()
Dim Datei As String, Text As String
Dim Zeile As Long
On Error GoTo Fehler
'Quelldatei festlegen
Datei = ThisWorkbook.Path & "\test.txt"
Open Datei For Input As #1         ' Quelldatei öffnen.
Zeile = 1
Do While Not EOF(1)           ' Schleife bis Dateiende
Line Input #1, Text      ' Text lesen
ActiveSheet.Cells(Zeile, 1) = Text
Zeile = Zeile + 1
Loop
Close #1   'Quelldatei schließen
Exit Sub
Fehler:
Close #1
MsgBox "FehlerNr.: " & Err.Number & vbNewLine & vbNewLine _
& "Beschreibung: " & Err.Description _
, vbCritical, "da ist leider ein Fehler aufgetreten"
End Sub
Rohdaten alles ohne Absatz:
;per Fax,141285,,LIE15/139852,LIE15/139852;per Fax,303194,,LIE15/139853,LIE15/139853
Nun werden die Daten aber alle in einer Zelle gespeichert und nicht wie folgt:
per Fax	141285		LIE15/139852	LIE15/139852
per Fax	303194		LIE15/139853	LIE15/139853

Außerdem möchte ich, dass nach jedem Semikolon eine neue Zeile angefangen wird. Gibt es hierfür eine Lösung?

Anzeige

5
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: txt-Datei importieren
29.01.2016 10:25:36
Rudi
Hallo,
ungetestet, da ich keine .txt habe.
Sub Datei_importieren()
Dim Datei As String, sText As String, vDaten, vTmp, i As Long, j As Long
Dim Zeile As Long
On Error GoTo Fehler
'Quelldatei festlegen
Datei = ThisWorkbook.Path & "\test.txt"
Zeile = 1
Open Datei For Input As #1         ' Quelldatei öffnen.
Do While Not EOF(1)           ' Schleife bis Dateiende
Line Input #1, sText      ' Text lesen
vDaten = vDaten & vbCrLf & sText
Loop
Close #1   'Quelldatei schließen
vDaten = Mid(vDaten, 2)
vDaten = Split(vDaten, vbCrLf)
For i = 0 To UBound(vDaten)
vTmp = Split(vDaten(i), ";")
For j = 0 To UBound(vTmp)
Cells(Zeile, 1).Resize(, UBound(Split(vTmp(j), ",")) + 1) = Split(vTmp(j), ",")
Zeile = Zeile + 1
Next j
Next i
Exit Sub
Fehler:
Close #1
MsgBox "FehlerNr.: " & Err.Number & vbNewLine & vbNewLine _
& "Beschreibung: " & Err.Description _
, vbCritical, "da ist leider ein Fehler aufgetreten"
End Sub

Gruß
Rudi

Anzeige
AW: txt-Datei importieren
29.01.2016 10:35:46
Larissa
Perfekt!
Das ist die Lösung, nach der ich gesucht habe.
Wie kann den Code noch so ändern, dass eine neue Mappe geöffnet wird und als *xls Datei gespeichert wird?

AW: txt-Datei importieren
29.01.2016 10:49:58
Rudi
Hallo,
speichert unter dem Namen der .txt als xlsx:
Sub Datei_importieren()
Dim Datei As String, sText As String, vDaten, vTmp, i As Long, j As Long
Dim Zeile As Long
Dim wksNeu As Worksheet
On Error GoTo Fehler
Set wksNeu = Workbooks.Add.Sheets(1)
'Quelldatei festlegen
Datei = ThisWorkbook.Path & "\test.txt"
Zeile = 1
Open Datei For Input As #1         ' Quelldatei öffnen.
Do While Not EOF(1)           ' Schleife bis Dateiende
Line Input #1, sText      ' Text lesen
vDaten = vDaten & vbCrLf & sText
Loop
Close #1   'Quelldatei schließen
vDaten = Mid(vDaten, 2)
vDaten = Split(vDaten, vbCrLf)
For i = 0 To UBound(vDaten)
vTmp = Split(vDaten(i), ";")
For j = 0 To UBound(vTmp)
wksNeu.Cells(Zeile, 1).Resize(, UBound(Split(vTmp(j), ",")) + 1) = Split(vTmp(j), ",")
Zeile = Zeile + 1
Next j
Next i
With wksNeu.Parent
.SaveAs Filename:=Left(Datei, Len(Datei) - 4), _
FileFormat:=xlOpenXMLWorkbook ' oder xlExcel8
'.Close
End With
Exit Sub
Fehler:
Close #1
MsgBox "FehlerNr.: " & Err.Number & vbNewLine & vbNewLine _
& "Beschreibung: " & Err.Description _
, vbCritical, "da ist leider ein Fehler aufgetreten"
End Sub

Anzeige
AW: txt-Datei importieren
29.01.2016 11:23:40
Larissa
Vielen Dank!!!!

ist damit Dein alter Thread erledigt?
30.01.2016 18:10:07
Michael
Hi Larissa,
ich meine den hier: https://www.herber.de/forum/archiv/1468to1472/t1471406.htm#1471406
Dann sei bitte so freundlich und schreibe dort im Betreff "erledigt" oder so...
Vielen Dank im Voraus,
Gruß,
Michael
Anzeige
;

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Entdecke mehr
Finde genau, was du suchst

Die erweiterte Suchfunktion hilft dir, gezielt die besten Antworten zu finden

Suche nach den besten Antworten
Unsere beliebtesten Threads

Entdecke unsere meistgeklickten Beiträge in der Google Suche

Top 100 Threads jetzt ansehen
Anzeige