Microsoft Excel

Herbers Excel/VBA-Archiv

VBA= Zeiten werden nicht richtig gezählt | Herbers Excel-Forum


Betrifft: VBA= Zeiten werden nicht richtig gezählt von: Roland
Geschrieben am: 27.11.2009 10:17:32

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

  

Betrifft: AW: VBA= Zeiten werden nicht richtig gezählt von: Ptonka
Geschrieben am: 27.11.2009 10:54:54

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


  

Betrifft: Danke, Ptonka, so klappt es! oT von: Roland
Geschrieben am: 27.11.2009 17:19:13




  

Betrifft: AW: VBA= Zeiten werden nicht richtig gezählt von: Harald Kapp
Geschrieben am: 27.11.2009 11:04:34

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


Beiträge aus den Excel-Beispielen zum Thema "VBA= Zeiten werden nicht richtig gezählt"