HERBERS Excel-Forum - das Archiv
VBA= Zeiten werden nicht richtig gezählt
Roland

Hallo,
ein Makro schreibt mir in der 1. Spalte Uhrzeiten in 15 Minuten Rythmus. Das Problem ist, wenn ein Datumswechsel geschieht: Dann wird der Tag nicht erhöht, sondern es wird 0 Uhr des vorausgegangenen Tages angezeigt. Ab 0Uhr 15 zählt er wieder richtig:
08.11.2009 23:00
08.11.2009 23:15
08.11.2009 23:30
08.11.2009 23:45
08.11.2009 00:00 richtig wäre: 09.11.2009 00:00
09.11.2009 00:15
09.11.2009 00:30
09.11.2009 00:45
09.11.2009 01:00
Hier das Marko:

Sub minutenaddieren()
Dim anfang, ende, i As Date
Dim a, c As Long
anfang = DateSerial(2009, 11, 8) + TimeSerial(23, 0, 0)
ende = DateSerial(2009, 11, 9) + TimeSerial(1, 0, 0)
c = 4
a = 1
i = anfang
Do While i < ende
Cells(c, a) = i
c = c + 1
i = i + TimeSerial(0, 15, 0)
Loop
End Sub

Ist das ein Bug von Excel?
Grüße aus dem Badischen
Roland

AW: VBA= Zeiten werden nicht richtig gezählt
Ptonka

Hallo,
so klappt es:
Sub minutenaddieren()
Dim anfang, ende, i As Date
Dim a, c As Long
anfang = DateSerial(2009, 11, 8) + TimeSerial(23, 0, 0)
ende = DateSerial(2009, 11, 13) + TimeSerial(1, 0, 0)
c = 4
a = 1
i = anfang
Do While i < ende
Mitternacht = Mid(i, 12, 5)
Select Case Mitternacht
Case Is = ""
m = i + 1
Cells(c, a) = m
GoTo weiter
End Select
Cells(c, a) = i
weiter:
c = c + 1
i = i + TimeSerial(0, 15, 0)
Loop
End Sub
Gruß,
Ptonka
Danke, Ptonka, so klappt es! oT
Roland

AW: VBA= Zeiten werden nicht richtig gezählt
Harald

Hallo Roland,
vielleicht ein Bug von VBA, aber nicht notwendig von Excel.
Wenn man per Formel rechnet ergibt sich der richtige Wert:
A1: 08.11.2009 23:45:00
A2: =A1+"0:15"
ergibt richtig 09.11.2009 00:00
Interessanterweise ist im VBA-Code um Mitternacht i=09.11.2009, erst in der Zelle wird daraus 08.11.2009 00:00.
Es ist also ein Problem der Zellformatierung. Leider finde ich auf die Schnelle keinen Weg, wie man das gerade biegen könnte.
Gruß
Harald