6.1k Aufrufe
Gefragt in Tabellenkalkulation von
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. :-)

7 Antworten

0 Punkte
Beantwortet von hajo_zi Experte (9.1k Punkte)
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
0 Punkte
Beantwortet von
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?
0 Punkte
Beantwortet von
Ach ja,

habe ich fast vergessen.

Besten Dank für die schnelle Antwort.
0 Punkte
Beantwortet von hajo_zi Experte (9.1k Punkte)
Hallo Marc,

Uhrzeiteingabe ohne : mit VBA

Gruß Hajo
0 Punkte
Beantwortet von flupo Profi (17.8k Punkte)
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
0 Punkte
Beantwortet von nighty Experte (6.6k Punkte)
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
0 Punkte
Beantwortet von marc_k Einsteiger_in (49 Punkte)
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. :-)
...