Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1464to1468
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
txt in Excel umwandeln
18.12.2015 10:42:45
Larissa
Hallo,
ich habe folgendes Problem. Ich habe eine txt-Datei, die ich in Excel importieren möchte.
Folgenden Code habe ich bisher:
Sub txttoxls(ByVal File As String, ByVal zWkb As String)
Dim txt As String
Dim Buffer As String
Dim acLine As Long
Dim acCol As Long
acLine = 0
acRow = 1
txt = File
Open txt For Input As 1
While Not EOF(1)
Buffer = Input(1, #1)
If Buffer = ";" Then
acLine = acLine + 1
acRow = 1
ElseIf Buffer = "," Then
acRow = acRow + 1
Else
Application.Workbooks(zWkb).Sheets(1).Cells(acLine, acRow).Value = _
Application.Workbooks(zWkb).Sheets(1).Cells(acLine, acRow).Value & _
Buffer
'Application.Workbooks(zWkb).Sheets(1).Cells(1, 2).Value = "tesr"
End If
Wend
Close #1
ActiveWorkbook.Save
End Sub
Die umzuwandelnde Datei sieht folgendermaßen aus (und genau hier liegt das Problem):
;Onlineshop,194160,,LIE15/155448,LIE15/155448,LIE15/155448,LIE15/155448,LIE15/155448
;per Fax,144253,,LIE15/155450
;Onlineshop,193246,,LIE15/155451,LIE15/155451
;per Fax,141250,,LIE15/155456
;per Fax,300114,,LIE15/155457
Bei dem Makro erhalte ich eine Laufzeitfehler in der "Else-Condition". Habt ihr Ideen wo der Fehler liegt?

8
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: txt in Excel umwandeln
18.12.2015 11:23:08
AndrRo
Hallo Larissa,
der Code funktioniert, meine Vermutung: diesen Programm wird von einen anderen Programm aus gestartet, es wird der Pfad der Text-Datei und der Name der Exceldatei übergeben. Eine der Namen stimmt nicht überein.
Ich habe diese Variablen mit den beiden Zeilen umschrieben, dann hat der Code funktioniert.
zWkb = Application.ThisWorkbook.Name
txt = "C:\Users\Documents\Test VBA.txt"
gruss AndrRo

AW: txt in Excel umwandeln
18.12.2015 11:36:40
Larissa
Hi,
bei mir klappt es immer noch nicht. Ich habe den Code folgendermaßen angepasst:
Sub txttoxls()
Dim txt As String
Dim Buffer As String
Dim acLine As Long
Dim acCol As Long
Dim zWkb2 As String
Dim xlsName As String
Application.Workbooks.Add
Cells.Select
Selection.NumberFormat = "@"
xlsName = zWkb & ActiveWorkbook.Name & ".xls"
ActiveWorkbook.SaveAs (xlsName)
zWkb2 = Application.ThisWorkbook.Name
acLine = 0
acRow = 1
txt = Application.GetOpenFilename("Excel-Dateien (*.txt), *.txt")
Open txt For Input As 1
While Not EOF(1)
Buffer = Input(1, #1)
If Buffer = ";" Then
acLine = acLine + 1
acRow = 1
ElseIf Buffer = "," Then
acRow = acRow + 1
Else
Application.Workbooks(zWkb2).Sheets(1).Cells(acLine, acRow).Value = _
Application.Workbooks(zWkb2).Sheets(1).Cells(acLine, acRow).Value & _
Buffer
'Application.Workbooks(zWkb).Sheets(1).Cells(1, 2).Value = "tesr"
End If
Wend
Close #1
ActiveWorkbook.Save
End Sub

Anzeige
AW: txt in Excel umwandeln
18.12.2015 11:52:33
AndrRo
ersetze:
zWkb2 = Application.ThisWorkbook.Name
durch
zWkb2 = Application.ActiveWorkbook.Name
Gruss
AndrRo

AW: txt in Excel umwandeln
18.12.2015 11:55:26
Larissa

Application.Workbooks(zWkb2).Sheets(1).Cells(acLine, acRow).Value = _
Application.Workbooks(zWkb2).Sheets(1).Cells(acLine, acRow).Value & _
Buffer
In dieser Zeile bekomme ich immer noch einen Fehler. Ich bin völlig verwirrt.

AW: txt in Excel umwandeln
18.12.2015 12:02:42
AndrRo
Hallo Larissa,
ich habe mal meine Datei geladen, schau sie dir mal an, ich kann leider erst montag weiter helfen.
https://www.herber.de/bbs/user/102341.xlsm
Gruss AndrRo

Anzeige
AW: txt in Excel umwandeln
18.12.2015 12:05:11
Larissa
Auch bei deiner Datei erhalte ich die Fehlermeldung. Komisch.

AW: txt in Excel umwandeln
18.12.2015 12:11:49
Rudi
Hallo,
so?
Sub aaa()
txt2xls "c:\test\test1.txt", "mappe1.xls"
End Sub
Sub txt2xls(sText As String, sWkb As String)
Dim Buffer As String, arrTmp
Dim wksZiel As Worksheet
Dim lRow As Long
Set wksZiel = Workbooks(sWkb).Sheets(1)
Open sText For Input As #1
Do While Not EOF(1)
lRow = lRow + 1
Line Input #1, Buffer
arrTmp = Split(Mid(Trim(Buffer), 2), ",")
wksZiel.Cells(lRow, 1).Resize(, UBound(arrTmp) + 1) = arrTmp
Loop
Close #1
End Sub

Gruß
Rudi

AW: txt in Excel umwandeln
18.12.2015 12:16:54
Larissa
Danke! Es funktioniert!
Anzeige

301 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige