automatische Monatsübernahme
28.10.2003 09:27:08
Diana
ich habe folgendes Problem:
Eine Datei enthält in Spalte A Datums-/Zeitangaben mit der Struktur: 17 11:35
Das bedeutet, das am 17 eines Monats um 11:35 etwas gemessen wurde.
Nun möchte ich das Datum in Spalte B und die Zeit in Spalte C ausgeben. Dafür habe ich folgendes VBA Script geschrieben:
' Datum aus Datalogger-Zeitangabe extrahieren
Function DL_Datum(Jahr#, Monat#, DLZeit)
Dim JJJJ As Integer, mm As Integer, tt As Integer
JJJJ = Jahr
mm = Monat
tt = Left(DLZeit, 2)
DL_Datum = DateSerial(Year:=JJJJ, Month:=mm, Day:=tt)
End Function
' Uhrzeit aus Datalogger-Zeitangabe extrahieren
Function DL_UZeit(DLZeit)
Dim hh As Integer, min As Integer, sec As Integer
hh = Mid(DLZeit, 4, 2)
min = Mid(DLZeit, 7, 2)
sec = 0
DL_UZeit = TimeSerial(Hour:=hh, Minute:=min, Second:=sec)
End Function
' Datum und Zeit aus Datalogger-Zeitangabe extrahieren
Function DLZ(Jahr#, Monat#, DLZeit)
Dim JJ As Integer, mm As Integer, tt As Integer, hh As Integer, min As Integer, sec As Integer
Dim Date1 As Date, Time1 As Date, Date2 As Date
JJ = Jahr
mm = Monat
tt = Left(DLZeit, 2)
hh = Mid(DLZeit, 4, 2)
min = Mid(DLZeit, 7, 2)
sec = 0
Date1 = DateSerial(Year:=JJ, Month:=mm, Day:=tt)
Time1 = TimeSerial(Hour:=hh, Minute:=min, Second:=0)
Date2 = DateSerial(Year:=JJ, Month:=mm, Day:=tt) & Space(1) & TimeSerial(Hour:=hh, Minute:=min, Second:=0)
DLZ = CDate(Date2)
End Function
Das funktioniert auch alles bestens, nur muss ich für das Datum immer den Monat per Hand angeben (in der Funktion). Wenn dann der letzte Tag des Monats erreicht ist und ein neuer Monat beginnt, springt er nicht automatisch in den nächsten Monat, sondern macht immer so weiter mit dem angegebenen Monat.
Ich würde gern folgende Lösung umsetzen:
In einer beliebigen Zelle gebe ich den Startmonat und beim kopieren der Funktion nach unten, soll das Script automatisch prüfen, dass wenn der Tag der vorangegangenen Zelle größer ist, dann muss der Monat um einen Wert höher gesetzt werden. Sprich, wenn ich folgende Daten habe:
17 11:35
17 17:35
18 11:35
18 17:35
5 11:35
5 17:35
(Startmonat = April)
dann muss in den Spalten daneben stehen:
17.04.03 11:35
17.04.03 17:35
18.04.03 11:35
18.04.03 17:35
05.05.03 11:35
05.05.03 17:35
Das selbe Problem muss ich auch für das Jahr lösen. Im Moment werden es alles Daten aus 2003 sein, aber es kommt die Jahreswende und dann steht da Januar 2004 an.
Nun meine Frage: Wie muss ich meine VBA Funktionen anpassen, dass er sich Monat und Jahr bei gegebenen Startwerten automatisch holt?
Ich bin über jeden Lösungsvorschlag dankbar.
Liebe Grüße aus Hannover
Diana