Live-Forum - Die aktuellen Beiträge
Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

import aus txt file

Forumthread: import aus txt file

import aus txt file
24.10.2006 10:52:45
peter
hi leute,
habe ein problem beim import aus einem txt-file. dieses file enthält mehr als 256 spalten! wie kann ich diese daten in excel bringen? ich möchte es einfach auf 2 sheets aufteilen?
wer kann helfen! vielen dank im voraus! wäre sehr dringend!
lg peter
Anzeige

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

Betreff
Datum
Anwender
Anzeige
AW: import aus txt file
24.10.2006 11:05:54
yogi
Tach Peter
lies jeweils eine ganze Zeile ein und trenne sie dann selbst
Open "DATEI1" For Input As #1 ' Datei öffnen.
Do While Not EOF(1) ' Schleife bis Dateiende.
Line Input #1, Textzeile ' Zeile in Variable einlesen.
=&gt Zeile auseinander nehmen'
Loop
Close #1 ' Datei schließen.
Gruss yogi
Anzeige
AW: import aus txt file
24.10.2006 11:46:58
fcs
Hallo Peter,
folgendes Makro sollte das Problem lösen.
Gruß
Franz

Sub txtimportmehrals256Spalten()
Dim wks() As Worksheet, Zeilentext, Zeile As Long, Spalte As Integer
Dim wb As Workbook, I As Long, J As Integer
Dim Dateiname As String, ff As Integer, Text As String, Spalten As Integer
Zeile = 1
Dateiname = Application.GetOpenFilename("Text Files (*.txt), *.txt", , "Bitte Textdatei auswählen")
If Dateiname = "" Then Exit Sub
ff = FreeFile()
Open Dateiname For Input As #ff
Do Until EOF(ff)
Line Input #ff, Text
'Delimiter in der nächsten Zeile ggf. anpassen
Zeilentext = Split(Expression:=Text, Delimiter:=";")
'Neue Datei anlegen und ggf. Blattzahl anpassen
If Zeile = 1 Then
Spalten = UBound(Zeilentext) + 1
Set wb = Workbooks.Add
Do Until wb.Worksheets.Count >= Spalten / 256
wb.Worksheets.Add After:=wb.Worksheets(wb.Worksheets.Count)
Loop
ReDim wks(1 To Int(Application.WorksheetFunction.RoundUp(Spalten / 256, 0)))
For I = 1 To UBound(wks)
Set wks(I) = wb.Worksheets(I)
Next I
End If
' Daten in Spalten eintragen
For I = 1 To UBound(wks)
For J = 1 To 256
wks(I).Cells(Zeile, J).Value = Zeilentext(Spalte)
Spalte = Spalte + 1
If Spalte = Spalten Then GoTo nexteSatz
Next J
Next I
nexteSatz:
Zeile = Zeile + 1
Spalte = 0
Loop
Close #ff
End Sub

Anzeige
AW: import aus txt file
24.10.2006 13:06:19
peter
vielen dank für deine antwort! bekomme bei der funktion ubound immer einen fehler: "erwartet datenfeld". woran kann das liegen?
AW: import aus txt file
24.10.2006 14:16:48
fcs
Hallo Peter,
keine Ahnung warum es eine Fehlermeldung gibt.
Ich hab es mit folgender Text-Datei getestet. Läuft bei mir unter WindowsXPprof und Excel 2003 reibungslos.
https://www.herber.de/bbs/user/37628.txt
Gruß
Franz
Anzeige
AW: import aus txt file
25.10.2006 15:23:18
Peter
Hallo Peter,
noch eine Variante, die läuft:

Sub TxtDateiAuswaehlen()
Dim DName      As Variant
Dim Textzeile  As String
Dim aTemp()    As String
Dim iIndex     As Integer
Dim lZeile     As Long
Dim iSpalte_1  As Integer
Dim iSpalte_2  As Integer
Dim WkSh_1     As Worksheet
Dim WkSh_2     As Worksheet
DName = Application _
.GetOpenFilename("Text Files (*.txt), *.txt")
If DName = "Falsch" Then
Exit Sub
End If
Open DName For Input As #1
'    hier muss die Verarbeitung stattfinden
Set WkSh_1 = Worksheets("Tabelle1")
Set WkSh_2 = Worksheets("Tabelle2")
lZeile = 5                       ' erste Ausgabezeile festlegen
Do While Not EOF(1)                ' Schleife bis Dateiende.
Line Input #1, Textzeile        ' Zeile in Variable einlesen.
'     => Zeile auseinander nehmen
aTemp = Split(Textzeile, ";")   ' die Txt-Eingabe beim Semicolon trennen
lZeile = lZeile + 1
iSpalte_1 = 1                   ' erste Ausgabespalte Blatt 1
iSpalte_2 = 1                   ' erste Ausgabespalte Blatt 2
For iIndex = LBound(aTemp) To UBound(aTemp)
If iIndex < 256 Then         ' ist Spalte IV (256) erreicht ?
WkSh_1.Cells(lZeile, iSpalte_1).Value = aTemp(iIndex)
iSpalte_1 = iSpalte_1 + 1 ' die nächste Spalte ermitteln
Else
WkSh_2.Cells(lZeile, iSpalte_2).Value = aTemp(iIndex)
iSpalte_2 = iSpalte_2 + 1 ' die nächste Spalte ermitteln
End If
Next iIndex                     ' das nächste Wort holen
Loop
Close #1
End Sub

Viele Grüße Peter
Eine kurze Nachricht, ob es läuft, wäre nett - danke.
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