AW: Automatisches Einlesen von text-Datein
01.04.2009 12:11:44
text-Datein
Hallo Thies,
prinzipiell geht es mit folgendem Makro.
Wenn der Dateiname immer identisch ist, dann kannst du der Variablen den vollständigen Dateinamen direkt zuweisen und die If-Pürfung weglassen, d.h. ohne den Dialog anzuzeigen.
In meinem Beispiel werden die Daten in das aktive Tabellenblatt geschrieben.
Du kannst Sie im Userform natürlich auch z.B. einer Listbox oder Kombobox zuweisen.
Gruß
Franz
Sub TextDateiEinlesen()
Dim varTextDatei, FF As Integer
Dim strText As String, arrNumbers, intNumbers As Long
Dim wks As Worksheet, Zeile As Long
varTextDatei = Application.GetOpenFilename(filefilter:="Text(*.txt),*.txt", _
Title:="Bitte Textdatei mit daten auswählen und öffnen")
If varTextDatei False Then
Set wks = ActiveSheet 'oder auch Worksheets("Tabelle1") 'Zieltabelle
FF = FreeFile()
Zeile = 0 'Zeile nach der die Werte eingetragen werden sollen
Open varTextDatei For Input As #FF
Do Until EOF(FF)
Line Input #FF, strText
Zeile = Zeile + 1
wks.Cells(Zeile, 1) = strText
Line Input #FF, strText
'Textzeile am ";" splitten in ein Array
arrNumbers = Split(strText, ";")
'Arrayinhalte in 3er-Schritten in Zeilen eintragen
For intNumbers = LBound(arrNumbers) To UBound(arrNumbers) Step 3
Zeile = Zeile + 1
wks.Cells(Zeile, 1) = arrNumbers(intNumbers)
wks.Cells(Zeile, 2) = arrNumbers(intNumbers + 1)
wks.Cells(Zeile, 3) = arrNumbers(intNumbers + 2)
Next
Loop
Close #FF
End If
End Sub