Konvertieren von Datum/Uhrzeit ist nicht einfach weil das Format je nach Regionaleinstellungen des Windows verschieden ist.
Deswegen bastelt man sich da besser selber was oder nutzt die VBA-Funktion DatePart
In dem csv-Archiv ist der Zeitstempel aber auch formatunabhängig als numerischer Wert in der letzten Spalte "Time_ms" enthalten
- zunächst Time_ms / 1.000.000 teilen, ergibt z.B. 41774,944663 = 15.05.2014 22:40:19
- der ganzzahlige Teil vor dem Komma ist das Datum: die Anzahl Tage seit dem 31.12.1899
- der gebrochene Teil nach dem Komma ist die Uhrzeit: 0,0 ... 1,0 entspricht 0:00:00 ... 24:00:00
Code:
Dim Dummy(), DT(), TimeS, Datum
Line Input #Datei, ReadLine
[COLOR="#008000"]'ergibt z.B.: "DB 103 Stomverbrauch.Aktuell_Watt_KW_H;15.05.2014 22:40;644;1;41774944663"[/COLOR]
If ReadLine <> "" Then [COLOR="#008000"]'Leere Zeilen nicht auswerten[/COLOR]
If Asc(ReadLine) <> 36 Then [COLOR="#008000"]'Zeilen mit $ am Anfang nicht auswerten[/COLOR]
Dummy = Split(ReadLine, ";")
[COLOR="#008000"]' das ergibt:
' Dummy(0): "DB 103 Stomverbrauch.Aktuell_Watt_KW_H" 'VarName
' Dummy(1): "15.05.2014 22:40" 'TimeString
' Dummy(2): "644" 'VarValue
' Dummy(3): "1" 'Validity
' Dummy(4): "41774944663" 'Time_ms[/COLOR]
[COLOR="#008000"]'TimeString in Datum und Uhrzeit zerlegen[/COLOR]
DT = Split(Dummy(1) & " ", " ")
[COLOR="#008000"]'das ergibt:
' DT(0): "15.05.2014"
' DT(1): "22:40"
' DT(2): ""[/COLOR]
Tabelle1.Cells(zeile, 3) = DT(0) [COLOR="#008000"]'Datum[/COLOR]
Tabelle1.Cells(zeile, 4) = DT(1) [COLOR="#008000"]'Uhrzeit[/COLOR]
[COLOR="#008000"]'ODER unabhängig von den Regionaleinstellungen Time_ms in Datum und Uhrzeit zerlegen:[/COLOR]
TimeS = Val(Dummy(4)) / 1000000 [COLOR="#008000"]'Time_ms / 1.000.000[/COLOR]
Datum = Int(TimeS) [COLOR="#008000"]'Datum ist der Teil vor dem Komma, Uhrzeit der Teil nach dem Komma[/COLOR]
Tabelle1.Cells(zeile, 5) = Datum [COLOR="#008000"]'Datum -> Zelle als Datum formatieren[/COLOR]
Tabelle1.Cells(zeile, 6) = TimeS - Datum [COLOR="#008000"]'Uhrzeit -> Zelle als Uhrzeit formatieren[/COLOR]