Wichtig: Textdateien in Excel einfügen

20/09/2007 - 12:06 von Alex | Report spam
Hallo,

ich hab` ein kleines Problem. Ich soll mehrere Textdateien (ca. 100)
in ein Excelfile einlesen. Das erste Textfile einlesen funktioniert
wunderbar, ließ sich einfach programmieren. Ich weiß nun leider nicht
wie ich die anderen Textfiles einfügen soll, da die Namen der
Textfiles nicht zusammenhàngend sind (wie 1234 oder so), so dass ich
sie nicht einfach aufzàhlen lassen kann. Mit einem Macro hab ich es
auch schon probiert leider ohne Erfolg. Mein Code die grobe Struktur
eines Vorgàngers:

Sub TextdateiEinlesen()
'Format:
'beliebig viele Zahlen (der erste Teil einer PK)
'ein beliebiger Buchstabe
'beliebig viele Zahlen (der zweite Teil einer PK)
'Nachname bis zum Komma
'Vorname


Dim TBlatt As Worksheet
Set TBlatt = ThisWorkbook.Worksheets(1)
Dim Dateiname$, Txt$, I$, Ze As Double
Dim PK1$, PK2$, VN$, NN$, Merker%
Dateiname = Application.GetOpenFilename
If LCase(Dateiname) = "false" Or _
LCase(Dateiname) = "falsch" Then Exit Sub
Open Dateiname For Binary As #1
Do While Not EOF(1)
Txt = "": I = " "
PK1 = "": PK2 = "": VN = "": NN = ""
Merker = 1
Do While Not EOF(1)
NeuesZeichen:
Get #1, , I
If Asc(I) = 10 Then GoTo NeuesZeichen
If Asc(I) = 13 And Merker = 4 Then Exit Do
If Asc(I) = 0 Then GoTo NoFile
If I = "," Then Merker = 4: GoTo NeuesZeichen
Erneut:
Select Case Merker
Case 1
If IsNumeric(I) = True Then
PK1 = PK1 & I
Else
Merker = 2
End If
Case 2
If IsNumeric(I) = True Then
PK2 = PK2 & I
Else
Merker = 3
GoTo Erneut
End If
Case 3
NN = NN & I
Case 4
VN = VN & I
End Select
Loop
Ze = Ze + 1
TBlatt.Range(TBlatt.Cells(Ze, 3), TBlatt.Cells(Ze, 6)) _
Array(PK1, PK2, VN, NN)
NoFile:
Loop
Close #1
End Sub

Danke schon mal im Voraus

Alex
 

Lesen sie die antworten

#1 Bernd P
20/09/2007 - 12:16 | Warnen spam
Hallo Alex,

Ich denke, Du brauchst eine Routine, die alle Dateien identifiziert
und dann deren Inhalte in definierte Tabellenbereiche làdt. Für das
Laden würde vielleicht nehmen:
http://www.erlandsendata.no/english...timportcsv

Viele Grüße,
Bernd

Ähnliche fragen