Uhrzeiten ohne Doppelpunkt
Hallo Leute,
ich habe ein Problem ich möchte in Excel die Uhrzeit ohne Doppelpunkt eingeben und damit auch weiter rechnen.
Dafür habe ich folgendes Makro gefunden:
Private Sub worksheet_Change(ByVal Target As Range)
Application.EnableEvents = False
With Worksheet
If Range(Target.Address).NumberFormat = "h:mm" Then
If Len(Target.Value) = 4 Then Target.Value = Mid$(Target.Value, 1, 2) & ":" & Mid$(Target.Value, 3, 2)
If Len(Target.Value) = 3 Then Target.Value = Mid$(Target.Value, 1, 1) & ":" & Mid$(Target.Value, 2, 2)
If Len(Target.Value) = 2 Then Target.Value = "00" & ":" & Mid$(Target.Value, 1, 2)
If Len(Target.Value) = 1 Then Target.Value = "00" & ":0" & Mid$(Target.Value, 1, 1)
End If
End With
Application.EnableEvents = True
End Sub
Das Funktioniert auch so weit, nur bei 1200 zeigt Excel nicht 12:00 an, sondern 0:,5.
Ich weiss wohl das Excel damit meint das 12:00 der halbe Tag ist.
Wie kann man das oben genannte Makro ab ändern damit auch bei 1200 12:00 angezeigt wird.
Habe mich schon dumm und dämlich gesucht und leider habe ich auch keine wirkliche Ahnung von VBA.
Ich danke schon mal. :-)
Antwort schreiben
Antwort 1 von Hajo_Zi vom 18.03.2021, 16:32 Options
Hallo Marc,
die für mich einfachste Art zur Zeiteingabe ist.
Stelle bei Autokorrektur ein Ersetzen ,, durch : dann kannst Du Zeiten recht schnell mit der Num-Lock-Tastatur eingeben.
Gruß Hajo
Antwort 2 von Marc_K. vom 19.03.2021, 09:26 Options
Hi Hajo,
diese Lösung habe ich schon ein paar mal gefunden, das Problem ist das ich das Programm, welches ich schreibe, weitergeben will an meine Arbeitskollegen. Leider wird die Autokorrektur nicht in der Datei hinterlegt und funktioniert nicht bei denn anderen. Und da einige Kollegen 50+ und noch weniger Ahnung haben als ich könnte das ein Problem werden. :-)
Gibt es keine Möglichkeit Excel zu sagen, das es 12:00 nicht als 0,5 sondern wirklich als Uhrzeit 12:00 darstellt?
Antwort 3 von Marc_K. vom 19.03.2021, 09:27 Options
Ach ja,
habe ich fast vergessen.
Besten Dank für die schnelle Antwort.
Antwort 5 von Flupo vom 19.03.2021, 09:44 Options
Das Problem der Weitergabe lässt sich auch lösen, wenn du dein Makro um die Befehlszeile
Application.AutoCorrect.AddReplacement ",,", ":"
ergänzt.
Es ist auch nicht schlimm, wenn dieser Befehl jedes Mal ausgeführt wird, da bereits vorhandene Einträge in der Autokorrekturliste einfach überschrieben werden.
Gruß Flupo
Antwort 6 von nighty vom 19.03.2021, 12:27 Options
hi all ^^
wie gewuenscht
gruss nighty
Private Sub worksheet_Change(ByVal Target As Range)
Application.EnableEvents = False
If Target.Column = 1 Then
Select Case Len(Target.Value)
Case 1
Target.Value = "00" & ":0" & Mid$(Target.Value, 1, 1)
Case 2
Target.Value = "00" & ":" & Mid$(Target.Value, 1, 2)
Case 3
Target.Value = Mid$(Target.Value, 1, 1) & ":" & Mid$(Target.Value, 2, 2)
Case 4
Target.Value = Mid$(Target.Value, 1, 2) & ":" & Mid$(Target.Value, 3, 2)
End Select
End If
Application.EnableEvents = True
End Sub
Antwort 7 von Marc_K. vom 19.03.2021, 15:42 Options
Ich danke euch allen für die Antworten.
Habe mich für die Lösung von Hajo entschieden.
(Uhrzeiteingabe ohne : mit VBA)
Klappt nach der Range-Anpassung besten.
Vielen Dank an alle und besonders Hajo, hast jemanden sehr glücklich gemacht. :-)