Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
812to816
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
812to816
812to816
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

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

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

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige