Hallo zusammen,
erst einmal allen einen schönen guten morgen.
Jetzt zu meinem problem.Ich habe mir ein VBA Programm erstellt das mir auswertungen macht.
Aber ich verzweifle mit der richtigen umrechnung Stunden minuten und der Dezimalangabe der zeit.
habe unten einen teil meines codes angefügt mit dem ich es bis jetzt versuche.
In meinen Zellen stehen die zeitangaben ca. so untereinander.
Dann legen ich mit einem anderen Code eine Sollzeit fest. Diese steht in einer anderen Zelle in diesem Format: 01:10:00 in der Zelle sieht es aber so aus-> 1:10:00
diese Sollzeit bedeutet 1 Stunde und 10 Minuten.
Jetzt soll aus den Datums unten gezählt werden wie viele die Sollzeit überschritten haben.
Aber irgend´wie errechnet er mir immer das falsche ergebniss. aufgefallen ist es mir bei diesem Wert
0 Tage 01:05h dann steht in meinem Array 1,8 aber das ist ja nicht ok weil es müsste ja eigentlich 1,08 sein glaube ich. Weil 1,8 ist ja mehr als die Sollzeit umgerechnet 1,166666 aber 1 Stunde 5 Minuten ist ja weniger als die Sollzeit von 1 Stunde und 10 Minuten :(
Ich weiß etas kompliziert zu verstehen.Kann es aber leider nicht besser erklären.
und leider muss ich es so zum laufen bekommen weil mein code doch recht komplex ist.
Würde mich freuen wenn mir jemand helfen könnte dabei.
Vielen Dank an alle helfer
gruß Chris
So stehen die zeiten untereinander in der Spalten:
0 Tage 00:01h
0 Tage 00:00h
0 Tage 01:25h
0 Tage 01:00h
0 Tage 01:05h
0 Tage 00:10h
0 Tage 00:05h
0 Tage 00:05h
0 Tage 00:32h
0 Tage 01:10h
Code um diese Werte oben umzurechnen und einzutragen in das array.
~f~
For a = 5 To neu.Worksheets(2).Cells(Rows.Count, yy).End(xlUp).Row
If neu.Worksheets(2).Cells(a, yy) = "" Then GoTo leer
bis = InStr(neu.Worksheets(2).Cells(a, yy), "Tage")
' On Error Resume Next
tage_in_stunden_akt = CDbl(Left(neu.Worksheets(2).Cells(a, yy), bis - 1)) * 24
stunden_akt = CDbl(Mid(neu.Worksheets(2).Cells(a, yy), bis + 5, 2))
stunden_akt = stunden_akt + tage_in_stunden_akt
minuten_akt = 100 / 60 * CDbl(Mid(neu.Worksheets(2).Cells(a, yy), bis + 8, 2))
'minuten_akt = Mid(neu.Worksheets(2).Cells(a, yy), bis + 8, 2)
gesamt_stunden(a - 5) = stunden_akt & "," & CInt((minuten_akt))
leer:
Next
'Sollzeitüberschreitungen zählen
akt_sollzeit = CDbl(neu.Worksheets(2).Cells(2, yy)) * 24
For ss = 0 To UBound(gesamt_stunden)
If akt_sollzeit = 0 Then
aktsollzeitzaehler = 0
Exit For
Else
End If
P.s sorry meine Rechtschreibfehler wenn vorhanden.