Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender

Forumthread: Dezimalzahlen in Stunden und Minuten umrechnen

Dezimalzahlen in Stunden und Minuten umrechnen
Claudia
Hallo zusammen,
mittels eines VBA-Codes werden aus einer Hostanwendung Daten nach Excel übertragen.
6,25
17,65
-2,97
1,09
4,52
5,13
10,87
5,52
6,00
4,03
Es handelt sich hierbei um Dezimalzahlen, die in Zeit (Stunden, Minuten) umgewandelt werden sollen. Diese Umrechnung soll innerhalb der gleichen Zelle passieren.
Betroffen sind die Zellen B4 bis N35
Wie kann ich das per VBA am besten anstellen?
Vielen Dank!
LG
Claudia
Anzeige
AW: Dezimalzahlen in Stunden und Minuten umrechnen
19.12.2010 16:48:22
Josef

Hallo Claudia,
dir ist aber bewusst, dass Excel nicht mit negativen Zeiten rechnen kann, oder nur über Umwege.
Der folgende Code rechnet alle Zahlen im ausgewählten bereich um.

Sub umrechnen()
  Dim rng As Range
  
  For Each rng In Selection
    If IsNumeric(rng) Then
      If rng >= 0 Then
        rng = rng / 24
      Else
        rng = "-" & Format(Abs(rng) / 24, "hh:mm:ss")
      End If
    End If
  Next
  
  Selection.NumberFormat = "[hh]:mm:ss"
End Sub

Gruß Sepp

Anzeige
AW: Dezimalzahlen in Stunden und Minuten umrechnen
19.12.2010 17:05:30
Claudia
Hallo Sepp,
vielen Dank für die prima Lösung. Dein Hinweis hat mich stutzig gemacht bzw. es läuft nun genau auf diese Situation hin. Wie kann ich denn nun mit diesen Minuswerte sinnvoll (wie sagtest Du "über Umwege") rechnen? Daran hatte ich nämlich überhaupt nicht gedacht.
LG
Claudia
Anzeige
AW: Dezimalzahlen in Stunden und Minuten umrechnen
19.12.2010 17:21:47
Claudia
Uih, da habe ich ja heute Abend was zu tun.
Vielen Dank für Deine Hilfe. Wünsch Dir schöne Weihnachten.
AW: Dezimalzahlen in Stunden und Minuten umrechnen
20.12.2010 08:45:23
Wilfried
Hallo!
Meinst Du es so? Weiterrechnen geht aber nicht.
Zeit
 AB
511Zahl auch negativ umwandeln in Text - Uhrzeit darstellen 
512   
513-14,5-14:30
514-4,75-04:45
515  -19:15

verwendete Formeln
Zelle Formel Bereich
B513 =WIEDERHOLEN("-";A513<0)&TEXT(ABS(A513/24);"[hh]:mm") 
B514 =WIEDERHOLEN("-";A514<0)&TEXT(ABS(A514/24);"[hh]:mm") 
B515 {=TEXT(ABS(SUMME(WENN(LINKS(B513:B514)="-";TEIL(B513:B514;2;99)*-1;B513:B514*1)));WENN(SUMME(WENN(LINKS(B513:B514)="-";TEIL(B513:B514;2;99)*-1;B513:B514*1))<0;"-";)&"[hh]:mm")} $B$515
{} Matrixformel mit Strg+Umschalt+Enter abschließen

Tabellendarstellung in Foren Version 5.27


Gruß
Wilfried
Anzeige
AW: Dezimalzahlen in Stunden und Minuten umrechnen
20.12.2010 09:55:50
Tino
Hallo,
hier mal eine VBA Variante.
Ich verwende das 1904 Datumsformat, damit man auch mit negativen Zahlen rechnen kann.
Sub Makro1()
Dim ArrayData()
Dim A&, B&

'damit man mit negativen Zeiten rechnen kann 
ActiveWorkbook.Date1904 = True
'Tabelle und Rangebereich anpassen 
With Sheets("Tabelle1").Range("B4:N35")
    ArrayData = .Value2
    
    For A = 1 To Ubound(ArrayData)
        For B = 1 To Ubound(ArrayData, 2)
            If ArrayData(A, B) <> "" Then
                If IsNumeric(ArrayData(A, B)) Then
                    If ArrayData(A, B) >= 0 Then
                        ArrayData(A, B) = ArrayData(A, B) / 24
                    Else
                        ArrayData(A, B) = -Abs(ArrayData(A, B)) / 24
                    End If
                End If
            End If
        Next B

    Next A
        
    .NumberFormat = "hh:mm;@"
    .Value2 = ArrayData
End With

End Sub
Gruß Tino
Anzeige

Forumthreads zu verwandten Themen

Anzeige
Anzeige
Anzeige

Infobox / Tutorial

Dezimalzahlen in Stunden und Minuten umrechnen


Schritt-für-Schritt-Anleitung

Um eine dezimalzahl in stunden und minuten umrechnen zu können, kannst Du einen VBA-Code verwenden. Hier ist eine einfache Schritt-für-Schritt-Anleitung:

  1. Öffne Excel und drücke ALT + F11, um den VBA-Editor zu öffnen.
  2. Gehe auf Einfügen > Modul, um ein neues Modul zu erstellen.
  3. Füge den folgenden Code in das Modul ein:
Sub umrechnen()
    Dim rng As Range
    For Each rng In Selection
        If IsNumeric(rng) Then
            If rng >= 0 Then
                rng = rng / 24
            Else
                rng = "-" & Format(Abs(rng) / 24, "hh:mm:ss")
            End If
        End If
    Next
    Selection.NumberFormat = "[hh]:mm:ss"
End Sub
  1. Schließe den VBA-Editor und kehre zu Excel zurück.
  2. Wähle den Bereich B4 bis N35 aus, in dem sich die dezimalzahlen in stunden befinden.
  3. Drücke ALT + F8, wähle umrechnen aus und klicke auf Ausführen.

Häufige Fehler und Lösungen

  • Problem: Negative Werte werden nicht korrekt umgerechnet.

    • Lösung: Stelle sicher, dass Du den VBA-Code verwendest, der auch negative Werte berücksichtigt.
  • Problem: Die Zeit wird nicht im gewünschten Format angezeigt.

    • Lösung: Überprüfe, ob der Bereich korrekt formatiert ist. Der Code setzt das Format auf "[hh]:mm:ss".

Alternative Methoden

Eine weitere Möglichkeit ist die Verwendung von Formeln in Excel:

  • Um eine dezimalzahl in stunden und minuten umrechnen zu können, kannst Du folgende Formel verwenden:
=TEXT(A1/24,"[hh]:mm")
  • Für die Umrechnung von Minuten in Stunden und Minuten kannst Du die folgende Formel verwenden:
=TEXT(A1/1440,"[hh]:mm")

Diese Formeln ermöglichen eine direkte Umrechnung in den Zellen, ohne VBA zu verwenden.


Praktische Beispiele

Hier sind einige Beispiele, wie Du dezimalzahlen in stunden umrechnen kannst:

  • Beispiel 1: 6,25 Stunden

    • Berechnung: 6,25 / 24 ergibt 0,26041667 -> Format: 06:15
  • Beispiel 2: -2,97 Stunden

    • Berechnung: -2,97 / 24 ergibt -0,12375 -> Format: -02:55

Verwende die Formeln oder den VBA-Code, um diese Werte in Deine Excel-Tabelle zu integrieren.


Tipps für Profis

  • Achte darauf, dass Du das 1904-Datumsformat aktivierst, wenn Du mit negativen Zeiten arbeiten möchtest. Dies kannst Du unter Datei > Optionen > Erweitert anpassen.
  • Nutze bedingte Formatierungen, um negative Zeiten visuell hervorzuheben.
  • Experimentiere mit der TEXT-Funktion, um das Format anzupassen, wenn Du nur Stunden oder Minuten benötigst.

FAQ: Häufige Fragen

1. Wie kann ich mehrere Dezimalzahlen auf einmal umrechnen? Verwende den VBA-Code und wähle den gesamten Bereich aus, bevor Du den Code ausführst.

2. Was passiert, wenn ich eine Dezimalzahl eingebe, die größer als 24 ist? Excel zeigt die Zeit im Format [hh]:mm:ss an, was bedeutet, dass Stunden über 24 korrekt dargestellt werden.

3. Gibt es eine Möglichkeit, die Umrechnung ohne VBA durchzuführen? Ja, Du kannst die oben genannten Formeln verwenden, um die Umrechnung direkt in den Zellen durchzuführen.

4. Funktioniert das auch in älteren Excel-Versionen? Die grundlegenden Funktionen sollten in den meisten Excel-Versionen verfügbar sein, jedoch kann es Unterschiede in der VBA-Implementierung geben.

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige