Herbers Excel-Forum - das Archiv
Zeitformat
Informationen und Beispiele zu den hier genannten Dialog-Elementen:
Betrifft: Zeitformat
von: Benjamin
Geschrieben am: 19.11.2003 19:47:39
Hallo Excels,
möchte Zeitdaten automatisch in einem Textfeld einer UserForm konvertieren lassen.
Leider klappt das nicht mit nachfolgendem Code (ist für Beträge mit zwei Kommastellen).
Ist es möglich, den Code so umzustricken, das ein Zeitformat angezeigt wird (zB. bei Eingabe 1045 konvertierung in das Format 10:45)?
Private Sub TagArbZeit_BeforeUpdate(ByVal Cancel As MSForms.ReturnBoolean)
With TagArbZeit
If TagArbZeit > 0 Then
If InStr(TagArbZeit.Value, ",") = 0 Then TagArbZeit.Value = TagArbZeit.Value / 100
ElseIf TagArbZeit = 0 Or TagArbZeit = "" Then Exit Sub
End If
End With
End Sub
Grüße Benjamin
Betrifft: AW: Zeitformat
von: Matthias G
Geschrieben am: 19.11.2003 21:26:46
Hallo Benjamin,
hier ein Code, der Zeitangaben sowohl im Format HH:MM als auch im Dezimalformat (12,5 = 12:30) akzeptiert:
Private Sub TagArbZeit_BeforeUpdate(ByVal Cancel As MSForms.ReturnBoolean)
With TagArbZeit
.Value = Replace(.Value, ",", ".")
'Numerisch und >=0?
If IsNumeric(.Value) And Val(.Value) >= 0 Then
'Ganzzahl?
If InStr(.Value, ".") = 0 And InStr(.Value, ",") = 0 Then
Select Case Len(.Value)
Case 1
.Value = "0" + .Value + ":00"
Case 2
.Value = .Value + ":00"
Case 3
.Value = "0" + Left(.Value, 1) + ":" + Right(.Value, 2)
Case 4
.Value = Left(.Value, 2) + ":" + Right(.Value, 2)
End Select
'Kommazahl?
Else
.Value = Val(.Value) / 24
End If
End If
'Prüft Zeit auf Plausibilität
On Error GoTo NoTime
.Value = FormatDateTime(.Value, vbShortTime)
On Error GoTo 0
End With
Exit Sub
NoTime:
MsgBox "Falsche Zeitangabe!"
Cancel = True
End Sub
Gruß,
Matthias
Betrifft: AW: Danke Matthias, für DeineHilfe!! Klappt!!
von: Benjamin
Geschrieben am: 19.11.2003 21:46:45
Danke!
Betrifft: AW: Danke für die Rückmeldung! - o.T.
von: Matthias G
Geschrieben am: 19.11.2003 22:14:08
-