Bitte Hilfe in VBA: Zeiten >24h in USERFRM sum.
30.01.2004 12:51:31
Peter3
ich habe ein ">24 h-Uhrzeiten-Additions-Problem". ES GEHT NICHT UM TABELLENFORMATIERUNG ([hh]:mm). Das steht ja auch mehrfach im Archiv.
Ich möchte vielmehr die korrekte Uhrzeiten-Summe allein unter VBA errechnen und in einer (zweiten) Userform im Bezeichnungsfeld angeben.
Situation: Tabelle mit zwei Uhrzeitspalten. VBA summiert erst erste Spalte, dann zweite und speichert die Werte in einer Variablen (pf und pnf). Was kann ich tun, damit Zeitsummen > 24 (dezimal 1) korrekt im Format zB 35:55 (35 h und 55 min) in der Userform dargestellt werden ? VBA gibt nur Rest-Uhrzeit > 24 h an.
Hier mein Code (bin ein "Buch lesen-verstehen und copy-Programmierer"):
Das Problem steht in der vorletzten Codezeile. Was ist falsch ?
Wenn ich Format(summe, [hh]:mm) schreibe kommt :12 heraus.
Private Sub zeitenaddieren()
Dim i As Integer ' Zähler erste Schleife
Dim y As Integer ' Zähler zweite Schleife
Dim pf As Date ' Zeitsumme erste Spalte
Dim pnf As Date ' Zeitsumme zweite Spalte
Dim summe As Date ' Gesamtsumme beider Zeitsummen
Sheets("Zeiten").Activate
Range("H2").Select 'oberste Zelle erste Zeitspalte aktivieren
pf = 0
'erste Zeitspalte durchlaufen
For i = 1 To ActiveSheet.UsedRange.Rows.Count
If IsNumeric(ActiveCell) Then 'Zellen ohne Uhrzeit auslassen
pf = pf + ActiveCell.Value
Else
End If
ActiveCell.Offset(1, 0).Select
Next i
Range("I2").Select 'oberste Zelle zweite Zeitspalte aktivieren
pnf = 0
'zweite Zeitspalte durchlaufen
For y = 1 To ActiveSheet.UsedRange.Rows.Count
If IsNumeric(ActiveCell) Then 'Zellen ohne Uhrzeit auslassen
pnf = pnf + ActiveCell.Value
Else
End If
ActiveCell.Offset(1, 0).Select
Next y
summe = pf + pnf
lbl_totalzeit = FormatDateTime(summe, vbShortTime)
End Sub
Danke für jeden Tip, Peter