Anzeige
Archiv - Navigation
1280to1284
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

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)

    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)

    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

    Anzeige
    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

    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)

    Beliebteste Forumthreads (12 Monate)

    Anzeige

    Beliebteste Forumthreads (12 Monate)

    Anzeige
    Anzeige
    Anzeige