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