Live-Forum - Die aktuellen Beiträge
Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender

Forumthread: 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.

Anzeige

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
;

Forumthreads zu verwandten Themen

Anzeige
Entdecke relevante Threads

Schau dir verwandte Threads basierend auf dem aktuellen Thema an

Alle relevanten Threads mit Inhaltsvorschau entdecken
Anzeige
Anzeige

Infobox / Tutorial

Stunden und Minuten in Dezimal umrechnen mit Excel und VBA


Schritt-für-Schritt-Anleitung

  1. Daten vorbereiten: Stelle sicher, dass deine Zeitangaben in einem geeigneten Format vorliegen, zum Beispiel 0 Tage 01:05h für 1 Stunde und 5 Minuten.

  2. VBA-Code anpassen: Verwende den folgenden VBA-Code, um die Zeiten in Dezimalzahlen umzuwandeln:

    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")
        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) = stunden_akt + minuten_akt
    leer:
    Next
  3. Sollzeit festlegen: Lege die Sollzeit in einer Zelle fest, z.B. 01:10:00 für 1 Stunde und 10 Minuten.

  4. Überschreitungen zählen: Zähle, wie viele Zeiten die Sollzeit überschreiten. Verwende dazu den folgenden Code:

    akt_sollzeit = CDbl(neu.Worksheets(2).Cells(2, yy)) * 24
    For ss = 0 To UBound(gesamt_stunden)
        If gesamt_stunden(ss) > akt_sollzeit Then
            aktsollzeitzaehler = aktsollzeitzaehler + 1
        End If
    Next

Häufige Fehler und Lösungen

  • Falsches Ergebnis bei der Umrechnung: Achte darauf, dass die Minuten korrekt in Dezimalzahlen umgerechnet werden. Verwende / 60, um Minuten in Dezimal umzurechnen.

  • Negative Zeitwerte: Excel hat Schwierigkeiten mit negativen Zeitwerten. Stelle sicher, dass deine Zeiten die Sollzeit nicht unterschreiten, bevor du die Differenz berechnest.


Alternative Methoden

  • Formeln verwenden: Statt VBA kannst du auch Formeln nutzen. Trage in einer neuen Spalte folgende Formel ein, um zu prüfen, ob die Zeit die Sollzeit überschreitet:

    =WENN(A8>ZEIT(1;10;0);A8-ZEIT(1;10;0);"SollZeit nicht erreicht")
  • Excel-Funktionen: Nutze Excel-Funktionen wie STUNDE(), MINUTE() und SEKUNDE() zur Umrechnung von Stunden und Minuten in Dezimalzahlen.


Praktische Beispiele

  • Beispiel 1: Um 10 Minuten in Dezimal umzuwandeln, teile 10 durch 60:

    =10/60  ' Ergebnis: 0,1667
  • Beispiel 2: Um 10000 Minuten in Stunden umzurechnen, teile durch 60:

    =10000/60  ' Ergebnis: 166,6667 Stunden

Tipps für Profis

  • Zellenformatierung: Stelle sicher, dass die Zellen, die Zeiten enthalten, im Zeitformat formatiert sind, um korrekte Berechnungen zu gewährleisten.

  • VBA Debugging: Nutze die Debugging-Funktionen in VBA, um Fehlerquellen schnell zu identifizieren. Setze Haltepunkte und überprüfe die Werte während der Ausführung.


FAQ: Häufige Fragen

1. Wie kann ich 3 Stunden 40 Minuten in Dezimal umrechnen? Um 3 Stunden 40 Minuten in Dezimal umzurechnen, rechnest du 3 + (40/60). Das Ergebnis ist 3,67.

2. Wie rechne ich 9999 Minuten in Stunden um? Teile 9999 durch 60. Das Ergebnis ist etwa 166,65 Stunden.

3. Kann ich mit Excel auch Sekunden in Dezimal umrechnen? Ja, du kannst Sekunden in Dezimal umrechnen, indem du die Sekunden durch 3600 teilst (da eine Stunde 3600 Sekunden hat).

4. Wie formatiere ich Zellen für Zeitangaben? Wähle die Zellen aus, klicke mit der rechten Maustaste, wähle "Zellen formatieren" und dann unter "Uhrzeit" das gewünschte Format aus.

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Entdecke mehr
Finde genau, was du suchst

Die erweiterte Suchfunktion hilft dir, gezielt die besten Antworten zu finden

Suche nach den besten Antworten
Unsere beliebtesten Threads

Entdecke unsere meistgeklickten Beiträge in der Google Suche

Top 100 Threads jetzt ansehen
Anzeige