Hallo,
Zeiten und Datum werden intern als Dezimalzahl gespeichert. Dabei ist ein Tag genau 1 lang. Eine Zeitspanne von 2,5 entspricht also 2,5 Tagen, also 2 Tagen und 12 Stunden ...
Wenn du also eine Zeit hast, dann kannst du durch Multiplikation mit 24 h auf Stunden kommen:
OK, sorry ich kann es gerade nicht besser beschreiben.Vielleicht sagt ein kleiner Code mehr als ich im Augenblick:
Sub bspl()
Dim myDate As Date
Const str1 As String = "166:56:27"
Const str2 As String = "6:12:58"
myDate = TimeSerial(166, 56, 27)
MsgBox Round(myDate * 24, 0)
myDate = TimeSerial(6, 12, 58)
MsgBox Round(myDate * 24, 0)
'Aber Achtung:
MsgBox Round(Now * 24, 0)
End Sub
Wichtig ist, dass es sich bei 6:12:58 wirklich um die Zeit 6:12:58 handelt und nicht zB. um den Zeitpunkt 19.9.2018 6:12:18.
Denn der 19.09.2018 entspricht der Zahl 43362. Der Zeitpunkt 19.9.2018 6:12:18 entspricht 43362,2585 wenn du jetzt mit 24 multiplizierst kommt was raus, was du nicht willst.
Im Internet gibt es unzähige Artikel / Tutorials, die beschreiben, wie Excel mit Zeiten rechnet. VBA macht das genau wie Excel - dir steht also jede Menge Lehrmaterial zur Verfügung ;-)
(ich habe es mir jetzt nicht angeschaut, doch im Allgemeinen sind die Artikel au online-excel.de hervorragend:
https://www.online-excel.de/excel/singsel.php?f=128
)
Grüße Ulrich
|