Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1468to1472
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

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?

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!!!!

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige