Live-Forum - Die aktuellen Beiträge
Datum
Titel
19.04.2024 12:23:24
19.04.2024 11:45:34
Anzeige
Archiv - Navigation
1000to1004
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

Mit VBA umrechnen Stunden Minuten Dezimal

Mit VBA umrechnen Stunden Minuten Dezimal
12.08.2008 08:12:00
chris

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.

2
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Mit VBA umrechnen Stunden Minuten Dezimal
12.08.2008 09:07:00
chris
habe es selbst hinbekomnmen.
Vielen dank
'Umwandeln Werte in Stunden
For yy = 1 To neu.Worksheets(2).Cells(4, Columns.Count).End(xlToLeft).Column
akt_sollzeit = 0
ReDim gesamt_stunden(neu.Worksheets(2).Cells(Rows.Count, yy).End(xlUp).Row - 5)
ReDim gesamt_minuten(neu.Worksheets(2).Cells(Rows.Count, yy).End(xlUp).Row - 5)
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 = CDbl(Mid(neu.Worksheets(2).Cells(a, yy), bis + 8, 2)) / 60
gesamt_stunden(a - 5) = CDbl((minuten_akt)) + stunden_akt

Anzeige
AW: Mit VBA umrechnen Stunden Minuten Dezimal
12.08.2008 10:29:00
Yal
Hallo Chris,
muss es unbedingt mit VBA gelöst werden?
Ich würde, Einfachheitswegen, mit Formeln zuerst probieren.
Du hast also in Spalte A verschiedene Zeiten, in Splate B möchtest Du auflisten, in wie weit diese Zeiten über 1:10 sind.
Das Problem liegt daran, dass es sich hier um eine Substraktion zwischen Zeiten handelt, und dass Excel nicht zu recht kommt, wenn eine Zeitmenge negativ wird, nämlich wenn die Zeit in Spalte unter 1:10 steht.
Daher muss Du zuerst prüfen, ob Du die Differenz bilden darf.
Füge in Spalte B folgende Formel:
=WENN(A8>ZEIT(1;10;0);A8-ZEIT(1;10;0);"SollZeit nicht erreicht")
also wenn die Zeit in Spalte A unter 1:10 ist, keine Delta bilden, ansonsten Delta ausrechnen.
Viel Erfolg
Yal
Anzeige

323 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige