bräuchte mal wieder die Hilfe aus dem Forum.
Habe mir vor langer Zeit mal eine Tabelle gemacht um meine Überstunden zu berechnen bzw. zu kontrollieren.
Bis vor kurzem hat mir die Firma die Stunden in dezimaler Form geliefert (1,5 Std.) nun bekomme ich die Stunden als 1:30 geliefert. Da es auch -1:30 gibt geht die normale Umrechnung in der Tabelle nicht.
Habe mir nun eine Funktion geschrieben um die 1:30 (eingegeben als 1,30) in dezimal umzuwandeln. Das funktioniert auch ganz gut, bis ich in den Minutenbereich 51 Min. bis 59 Min. komme. Hier kommt dann z. B. für:
0:51 nicht 0,83 sondern 0,18 raus
Es wird schon 1 für die Stunden erkannt und -49 für die Minuten.
Vielleicht hat ja jemand von euch eine Idee was da falsch läuft?
Danke euch schon wieder mal für die Hilfe.
Hier der Code: Public Function minInDez(ByVal minDez As Variant) As Variant Dim std As Integer Dim min As Integer Dim dez As Double 'aus minDez die ganzen Stunden ermitteln std = Round((minDez), 0) 'aus minDez die Minuten ermitteln min = minDez * 100 - std * 100 ' Minuten min in Dezimal dez umwandeln dez = min / 60 'Stunden und Min als Dezimal zusammen führen minInDez = Round((std + dez), 2) End Function
Gruß
Oswald