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

Zellausgabe: Zeitsummierung auch über 24 Std

Forumthread: Zellausgabe: Zeitsummierung auch über 24 Std

Zellausgabe: Zeitsummierung auch über 24 Std
12.10.2012 11:05:32
Dieter(Drummer)
Hi VBA Spezialisten,
ich habe eien Makro aus dem Netz, dass Zeiten auch größer 24 Summiert. Die Summe wird aber nur in einer MSG-Box gezeigt. Dies funktioniert prima. Nun möchte ich aber die Zeitsummierung, NACH der Anzeige der MSG-Box, in einer Zelle ausgeben, die ich anschließend auswählen kann. Wäre toll, wenn mir jemand das Makro erweitern kann.
Hier das bestehende Makro:
  • 'Zeit korrekt summieren auch > 24 Stunden; by Thomas Ramel
    
    Sub Zeit_summieren()
    Dim x As Variant
    Dim z As Variant
    Dim Zeit
    x = Selection.Address
    z = Application.WorksheetFunction.Sum(ActiveSheet.Range(x))
    Zeit = Format(Hour(z) + Int(z) * 24, "00") & ":" & Format(Minute(z), "00")
    If z = 0 Then
    MsgBox "Sie müssen mind. 1 gültige Zelle markieren", , "Fehler"
    Else
    MsgBox Zeit & " Std.", , "Summe [Zeit]"
    End If
    End Sub
    

  • Danke für's drum kümmern und evtl. Hilfe.
    Gruß, Dieter(Drummer)

    Anzeige

    8
    Beiträge zum Forumthread
    Beiträge zu diesem Forumthread

    Betreff
    Datum
    Anwender
    Anzeige
    AW: Zellausgabe: Zeitsummierung auch über 24 Std
    12.10.2012 11:07:09
    Rudi
    Hallo,
    Zellformat [h]:mm:ss
    Gruß
    Rudi

    AW: Zellausgabe: Zeitsummierung auch über 24 Std
    12.10.2012 11:30:37
    Dieter(Drummer)
    Danke Rudi für schnelle Rückmeldung. So hilft es mir leider nicht.
    Nach der Msgbox mit der Zeitangabe drücke ich OK. DANN möchte ich îrgend eine Zelle aktivieren UND in dieser soll dann das Ergebnis der Zeitsummierung eingefügt werden. So müsste das Makro wohl erweitert werden. Wie, weiß ich nicht.
    Ich lade mal eine Bespieltabelle mit Makro hoch: https://www.herber.de/bbs/user/82096.xls
    Danke für weitere Hilfe.
    Gruß
    Dieter(Drummer)

    Anzeige
    AW: Sorry: noch Ergänzung ...
    12.10.2012 11:42:45
    Dieter(Drummer)
    ...
    Das bisherige Makro rechnet grundsätzlich über 24 Std., d.h. z.B. 12:00 bis 12:10 ergibt dann 24:10 Std/Min.
    Wäre prima, wenn das Makro so aufgebaut wäre, dass Zeiten INNERHALB von 24 Stunden auch die richtige Zeitangabe zeigt. Z.B., 12:00 bis 13:00 = 1:00 St/Min. und wenn 12:00 bis 1:00, dann 13:00 Std/Min.
    Wenn das auch noch geht, würde mich freuen.
    Danke und Gruß
    Dieter(Drummer)

    Anzeige
    AW: Sorry, war Unsinn. owT
    12.10.2012 11:54:04
    Dieter(Drummer)
    .

    AW: Sorry: noch Ergänzung ...
    12.10.2012 12:01:48
    Rudi
    Hallo,
    das heißt dann doch, dass du eine Dauer ermitteln und somit Differenzen bilden willst und keine Summe.
    In deinem Bsp. müsste dann 00:10 rauskommen.
    Was genau ist dein Ziel?
    Gruß
    Rudi

    AW: Mein Ziel ...
    12.10.2012 12:17:29
    Dieter(Drummer)
    ... Hi Rudi,
    mein Ziel ist, verdeutlicht als Beispiel: Hier meine Musterdatei:
    https://www.herber.de/bbs/user/82097.xls dort habe ich 2 Makros.
    1) Ist die Endzeit über 24 Stunden hinaus, so soll aich die Zeit gezeigt werden
    2) Ist die Endzeit innerhalb 24 Stunde, dann soll NICHT über 24 Stunden gerechnet werden.
    Bei 1) ist im Makro die Zeile:
    
    Zeit = Format(Hour(z) + Int(z) * 24, "00") & ":" & Format(Minute(z), "00")
    
    Bei 2) habe ich geändert: Z
    
    eit = Format(Hour(z) + Int(z) * 0, "00") & ":" & Format(Minute(z), "00")
    
    Nun soll NACH der Msgbox (Ergebnis) das Ergebnis in eine dann frei gewählte Zelle eingetragen werden können.
    Ich hoffe es ist verständlich.
    Gruß
    Dieter(Drummer)

    Anzeige
    AW: Mein Ziel ...
    12.10.2012 13:08:00
    Rudi
    Hallo,
    wozu der Aufwand?
    Du musst doch nur 1 addieren, wenn Ende In ein Modul:
    Option Explicit
    Public Zeit As String
    Sub Dauer()
    Dim z As Variant
    z = Selection(2) - Selection(1)
    If z 

    Im Code der Tabelle:
    Private Sub Worksheet_SelectionChange(ByVal Target As Range)
    If Zeit  "" Then
    Target(1) = Zeit
    Zeit = ""
    End If
    End Sub
    

    Gruß
    Rudi

    Anzeige
    AW: Rudi, prima Lösung
    12.10.2012 13:29:01
    Dieter(Drummer)
    Danke dir Rudi für deine VBA-Lösung, die excellent funktioniert.
    Gruß
    Dieter(Drummer)
    ;

    Forumthreads zu verwandten Themen

    Anzeige
    Anzeige
    Anzeige
    Anzeige
    Anzeige

    Infobox / Tutorial

    Zellausgabe: Zeitsummierung auch über 24 Stunden


    Schritt-für-Schritt-Anleitung

    Um Zeiten in Excel, die über 24 Stunden hinausgehen, korrekt zu summieren und das Ergebnis in eine Zelle auszugeben, kannst Du folgendes VBA-Makro verwenden. Dieses Makro summiert die Zeiten und gibt das Ergebnis in einer von Dir gewählten Zelle aus.

    1. Öffne Excel und drücke Alt + F11, um den VBA-Editor zu öffnen.

    2. Klicke auf Einfügen und wähle Modul, um ein neues Modul zu erstellen.

    3. Kopiere und füge den folgenden Code in das Modul ein:

      Sub Zeit_summieren()
         Dim x As Variant
         Dim z As Variant
         Dim Zeit
         Dim ZielZelle As Range
      
         ' Auswahl der Zelle für das Ergebnis
         On Error Resume Next
         Set ZielZelle = Application.InputBox("Wähle eine Zelle für das Ergebnis:", Type:=8)
         On Error GoTo 0
      
         If ZielZelle Is Nothing Then Exit Sub
      
         x = Selection.Address
         z = Application.WorksheetFunction.Sum(ActiveSheet.Range(x))
         Zeit = Format(z, "[h]:mm:ss") ' Format für mehr als 24 Stunden
      
         If z = 0 Then
             MsgBox "Sie müssen mind. 1 gültige Zelle markieren", , "Fehler"
         Else
             MsgBox Zeit & " Std.", , "Summe [Zeit]"
             ZielZelle.Value = Zeit ' Ergebnis in die gewählte Zelle ausgeben
         End If
      End Sub
    4. Schließe den VBA-Editor und gehe zurück zu Excel.

    5. Wähle die Zellen mit den Zeiten aus, die Du summieren möchtest.

    6. Drücke Alt + F8, wähle Zeit_summieren und klicke auf Ausführen.

    7. Wähle die Zelle aus, in der das Ergebnis angezeigt werden soll.


    Häufige Fehler und Lösungen

    • Fehler: "Sie müssen mind. 1 gültige Zelle markieren"
      Lösung: Stelle sicher, dass Du vor dem Ausführen des Makros mindestens eine Zelle mit einem gültigen Zeitwert markiert hast.

    • Problem mit der Zellformatierung
      Lösung: Stelle sicher, dass die Zielzelle im Format [h]:mm:ss formatiert ist, damit Zeiten über 24 Stunden korrekt angezeigt werden.


    Alternative Methoden

    Wenn Du keine VBA-Makros verwenden möchtest, kannst Du auch die Funktion =SUMME() in Kombination mit einem benutzerdefinierten Zeitformat verwenden:

    1. Markiere die Zelle, in der die Summe angezeigt werden soll.
    2. Verwende die Formel:
      =SUMME(A1:A10) 

      (ersetze A1:A10 durch den Bereich, in dem Deine Zeitwerte stehen).

    3. Formatiere die Zelle dann mit dem benutzerdefinierten Format [h]:mm:ss.

    Praktische Beispiele

    Angenommen, Du hast in den Zellen A1 bis A5 folgende Zeiten:

    • A1: 12:30
    • A2: 6:45
    • A3: 5:15
    • A4: 1:00
    • A5: 24:10

    Wenn Du die oben beschriebene Methode anwendest, kannst Du die Summe dieser Zeiten (49:00) korrekt berechnen und anzeigen lassen.


    Tipps für Profis

    • Um die Zeiten direkt in Minuten umzurechnen, kannst Du die Zeiten mit 24 multiplizieren, da Excel Zeit als Bruchteil eines Tages speichert.
    • Du kannst auch die Zeitsumme in Minuten ausgeben, indem Du die folgende Formel verwendest:
      =SUMME(A1:A10)*24*60
    • Denke daran, bei der Verwendung von Zeiten über 24 Stunden das Format der Zellen entsprechend anzupassen, um Missverständnisse zu vermeiden.

    FAQ: Häufige Fragen

    1. Wie kann ich die Zeiten in Minuten umwandeln?
    Du kannst die Zeitwerte mit 24 multiplizieren und dann mit 60, um die Summe in Minuten zu erhalten.

    2. Was mache ich, wenn die Zeiten nicht korrekt angezeigt werden?
    Stelle sicher, dass die Zellen im richtigen Zeitformat formatiert sind, z.B. [h]:mm:ss für Zeiten über 24 Stunden.

    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