Daten aus txt-File
27.11.2008 23:40:08
Kurt
da hier immer sehr kluge Köpfe unterwegs sind und ich nicht wirklich weiterkomme, Frage ich mal die Experten und Expertinnen.
Folgendes Problem:
In verschiedenen txt-Dateien sind in einem bestimmten Bereich Daten, die ich per Makro in ein Excel-Sheet ("Data") kopieren möchte. Die relevanten Daten stehen zwischen zwei Zeilen. Dabei ist die erste Zeile durch "start", die zweite Zeiel durch "Ende" gekennzeichnet.
Beispiel:
Referenz: xxxx
========== Start ==========
Bereich 1:
Zahl1: 0,00
Wert1: 0,8 Wert2: 50
Wert3: 15 Wert4: 569
Wert5: -0,5 Wert6: +1,56 Zustand: i.O.
Bereich 2:
Zahl1: 0,00
Wert1: 0,8 Wert2: 50
Wert3: 15 Wert4: 569
Wert5: -0,5 Wert6: +1,56 Zustand: i.O.
Bereich 3:
Zahl1: 0,00
Wert1: 0,8 Wert2: 50
Wert3: 15 Wert4: 569
Wert5: -0,5 Wert6: +1,56 Zustand: i.O.
Bereich 4:
Zahl1: 0,00
Wert1: 0,8 Wert2: 50
Wert3: 15 Wert4: 569
Wert5: -0,5 Wert6: +1,56 Zustand: i.O.
========== Ende ==========
blabalbla....
Nun möchte ich folgendes erreichen:
1. Beim Start des Makros soll das Windows-Explorer Fenster aufgehen, so dass ich eine Datei wählen kann.
2. Die Zahlenwerte 1 bis 6 und der Zustand sollen für alle Bereiche (1 bis 4) untereinander in die Spalten von "Data" geschrieben werden (s.u.)
3. Ein Dialog soll nach Abschluss der Datenübertragung aufgehen, der fragt, ob weitere Daten hinzugefügt werden sollen. Wenn ja, dann soll die Datei auswählbar sein und die Daten der neuen Datei (selbes Format) unter die bereits bestehenden Daten geschrieben werden.
Referenz Zahl 1 Wert5 Wert6 Wert1 Wert3 Wert2 Wert4 Zustand
xxxx 0 -0,5 1,56 0,8 15 50 569 i.o
Bei meinen Versuchen bin ich bis dato nur soweit gekommen (s.u.)
Option Explicit
Sub test_txt()
Dim varName As Variant
Dim intHandle As Integer
Dim strOneLine As String
Dim lngZeile As Long
varName = Application.GetOpenFilename("Textdateien,*.txt,Alle Dateien,*.*")
If varName = False Then Exit Sub
intHandle = FreeFile
Open varName For Input As #intHandle
lngZeile = 1
While Not EOF(intHandle)
Line Input #intHandle, strOneLine
If strOneLine Like "*Referenz*" Then
lngZeile = lngZeile + 1
Cells(lngZeile, 1).Value = strOneLine
End If
Wend
Close #intHandle
End Sub
Hat von Euch jemand noch gute Ideen? Bin für jeden Tipp dankbar.
Grüße,
Kurt