Supportnet / Forum / Tabellenkalkulation
Uhrzeit ohne Doppelpunkt eingeben
Frage
Hallo zusammen, ich habe aus [url=https://supportnet.de/threads/182681]diesem [/url] Thread von Antwort 20 folgenden VBA-Code um Uhrzeiten ohne Doppelpunkt eingeben zu können:
[quote]Private Sub worksheet_Change(ByVal Target As Range)
On Error GoTo fehler
Application.EnableEvents = False
With Worksheet
Rem hier deine zellenformatierung
Rem bzw. anzupassen
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
fehler:
If Application.EnableEvents = False Then Application.EnableEvents = True
End Sub
[/quote]
Funktioniert super, jedoch nicht bei der Eingabe von 1200
Dann bekommt man als Wert 0:,5
Alle anderen Zeiten gehen ohne Problem. Woran könnte das liegen?
gruß
Locke
Antwort 1 von Saarbauer
Hallo,
die Angabe ist ok, da Excel stunden als dezimaltei eines Tages rechnet und somit ist 12:00 =0,5 Tag.
Wenn du 1200haben wilst mußt du den Wert *24 nehmen
Gruß
Helmut
die Angabe ist ok, da Excel stunden als dezimaltei eines Tages rechnet und somit ist 12:00 =0,5 Tag.
Wenn du 1200haben wilst mußt du den Wert *24 nehmen
Gruß
Helmut
Antwort 2 von Locke
Ähem, ich glaube Du hast da was falsch verstanden.
Ich will 1200 reintippen und per Makro soll dann in der Zelle 12:00 stehen, sonst nix. Zudem steht da 0:,5
Da ist also ein Doppelpunkt und ein Komma
Gruß
Locke
Ich will 1200 reintippen und per Makro soll dann in der Zelle 12:00 stehen, sonst nix. Zudem steht da 0:,5
Da ist also ein Doppelpunkt und ein Komma
Gruß
Locke
Antwort 3 von Saarbauer
Hallo,
ich glaube es hängt doch damit zusammen. Die ,5 sind der halbe Tag.
Da die Formatierung der Zelle auf Zeit ist
Hast du mal bei den Überwachungsausdrücken den Wert anzeigen lassen.
Gruß
Helmut
P.S. habe dein VBA nicht auf die schnelle zu laufen bekommen, wollte es selbst testen, mache irgenetwas falsch.
ich glaube es hängt doch damit zusammen. Die ,5 sind der halbe Tag.
Da die Formatierung der Zelle auf Zeit ist
Zitat:
If Range(Target.Address).NumberFormat = "h:mm" Then
If Range(Target.Address).NumberFormat = "h:mm" Then
Hast du mal bei den Überwachungsausdrücken den Wert anzeigen lassen.
Gruß
Helmut
P.S. habe dein VBA nicht auf die schnelle zu laufen bekommen, wollte es selbst testen, mache irgenetwas falsch.
Antwort 4 von Locke
Aus 1100 wird 11:00, aus 1300 wird 13:00, aus 1159 wird 11:59, aus 1201 wird 12:01, aus 700 wird 7:00, aus 20 wird 00:20 usw.....
Nur 1200 geht nicht. alles andere geht, jede Minute des Tages geht, nur nicht 1200.
Das finde ich seltsam.
Ich habe mir nun damit beholfen den Wert 0:,5 am Ende des Makros abzufragen und mache daraus 12:00.
Ist ja aber nicht die beste Lösung.
Nur 1200 geht nicht. alles andere geht, jede Minute des Tages geht, nur nicht 1200.
Das finde ich seltsam.
Ich habe mir nun damit beholfen den Wert 0:,5 am Ende des Makros abzufragen und mache daraus 12:00.
Ist ja aber nicht die beste Lösung.
Antwort 5 von michel123
hi all :)
reihenfolge aendern :)
Private Sub worksheet_Change(ByVal Target As Range)
On Error GoTo fehler
Application.EnableEvents = False
With Worksheet
Rem hier deine zellenformatierung
Rem bzw. anzupassen
If Len(Target.Value) = 1 Then Target.Value = "00" & ":0" & Mid$(Target.Value, 1, 1)
If Len(Target.Value) = 2 Then Target.Value = "00" & ":" & Mid$(Target.Value, 1, 2)
If Len(Target.Value) = 3 Then Target.Value = Mid$(Target.Value, 1, 1) & ":" & Mid$(Target.Value, 2, 2)
If Len(Target.Value) = 4 Then Target.Value = Mid$(Target.Value, 1, 2) & ":" & Mid$(Target.Value, 3, 2)
End With
Application.EnableEvents = True
End
fehler:
If Application.EnableEvents = False Then Application.EnableEvents = True
End Sub
reihenfolge aendern :)
Private Sub worksheet_Change(ByVal Target As Range)
On Error GoTo fehler
Application.EnableEvents = False
With Worksheet
Rem hier deine zellenformatierung
Rem bzw. anzupassen
If Len(Target.Value) = 1 Then Target.Value = "00" & ":0" & Mid$(Target.Value, 1, 1)
If Len(Target.Value) = 2 Then Target.Value = "00" & ":" & Mid$(Target.Value, 1, 2)
If Len(Target.Value) = 3 Then Target.Value = Mid$(Target.Value, 1, 1) & ":" & Mid$(Target.Value, 2, 2)
If Len(Target.Value) = 4 Then Target.Value = Mid$(Target.Value, 1, 2) & ":" & Mid$(Target.Value, 3, 2)
End With
Application.EnableEvents = True
End
fehler:
If Application.EnableEvents = False Then Application.EnableEvents = True
End Sub
Antwort 6 von Locke
Tatsächlich, das klappt.
Danke Dir.
Gruß
Locke
Danke Dir.
Gruß
Locke
Antwort 7 von Traurig
Hi zusammen!
Möchte mich hier mal einglinken:
Habe die "Diskussion" rund um die Uhrzeit mit großem Interesse verfolgt.
Leider kann ich das Makro nicht nachvollziehen. :-((
Habe folgendes Makro:
Private Sub worksheet_Change(ByVal Target As Range)
On Error GoTo fehler
Application.EnableEvents = False
With Worksheet
Rem hier deine zellenformatierung
Rem bzw. anzupassen
If ActiveCell.NumberFormat = "h:mm" Then
If Len(Target.Value) = 1 Then Target.Value = "00" & ":0" & Mid$(Target.Value, 1, 1)
If Len(Target.Value) = 2 Then Target.Value = "00" & ":" & Mid$(Target.Value, 1, 2)
If Len(Target.Value) = 3 Then Target.Value = Mid$(Target.Value, 1, 1) & ":" & Mid$(Target.Value, 2, 2)
If Len(Target.Value) = 4 Then Target.Value = Mid$(Target.Value, 1, 2) & ":" & Mid$(Target.Value, 3, 2)
End With
Application.EnableEvents = True
End
fehler:
If Application.EnableEvents = False Then Application.EnableEvents = True
End Sub
Das Format ist okay.
Aber leider wird 15 als 15.01.1900 00:00:00 ausgewiesen.
Was mach ich da falsch?
Möchte mich hier mal einglinken:
Habe die "Diskussion" rund um die Uhrzeit mit großem Interesse verfolgt.
Leider kann ich das Makro nicht nachvollziehen. :-((
Habe folgendes Makro:
Private Sub worksheet_Change(ByVal Target As Range)
On Error GoTo fehler
Application.EnableEvents = False
With Worksheet
Rem hier deine zellenformatierung
Rem bzw. anzupassen
If ActiveCell.NumberFormat = "h:mm" Then
If Len(Target.Value) = 1 Then Target.Value = "00" & ":0" & Mid$(Target.Value, 1, 1)
If Len(Target.Value) = 2 Then Target.Value = "00" & ":" & Mid$(Target.Value, 1, 2)
If Len(Target.Value) = 3 Then Target.Value = Mid$(Target.Value, 1, 1) & ":" & Mid$(Target.Value, 2, 2)
If Len(Target.Value) = 4 Then Target.Value = Mid$(Target.Value, 1, 2) & ":" & Mid$(Target.Value, 3, 2)
End With
Application.EnableEvents = True
End
fehler:
If Application.EnableEvents = False Then Application.EnableEvents = True
End Sub
Das Format ist okay.
Aber leider wird 15 als 15.01.1900 00:00:00 ausgewiesen.
Was mach ich da falsch?
Antwort 8 von Saarbauer
Hallo @Traurig ,
wahrscheinlich in der Zelle Datumsformat mit Uhrzeit und nicht reine Uhrzeit.
Gruß
Helmut
wahrscheinlich in der Zelle Datumsformat mit Uhrzeit und nicht reine Uhrzeit.
Gruß
Helmut
Antwort 9 von michel123
hi all
ich machte einen denkfehler die 4 if then zeilen sind umzudrehen,das wars schon,oben auch schon erwaehnt hab :))
gruss michel123
ich machte einen denkfehler die 4 if then zeilen sind umzudrehen,das wars schon,oben auch schon erwaehnt hab :))
gruss michel123
Antwort 10 von michel123
hi traurig :)
ups helmut hat recht :)) aber auch if zeilen umdrehen wegen der 12 :)))
gruss michel
ups helmut hat recht :)) aber auch if zeilen umdrehen wegen der 12 :)))
gruss michel
Antwort 11 von Traurig
Darf ich unverschämt sein?
Ist es möglich mit hier ein korrektes Makro zu posten.
Ehrlich gesagt bin ich mit Makros überfordert.
Wenn möglich möchte ich nächstes Jahr einen Kurs dazu besuchen.
Vielleicht kann ich dann nachvollziehen wovon Ihr Profis sprecht.
Danke!
@Helmut:
Das Zellenformat war nur "h:mm". --> wenn möglich möchte ich allerdings "[hh]:mm" werwenden.
Ist es möglich mit hier ein korrektes Makro zu posten.
Ehrlich gesagt bin ich mit Makros überfordert.
Wenn möglich möchte ich nächstes Jahr einen Kurs dazu besuchen.
Vielleicht kann ich dann nachvollziehen wovon Ihr Profis sprecht.
Danke!
@Helmut:
Das Zellenformat war nur "h:mm". --> wenn möglich möchte ich allerdings "[hh]:mm" werwenden.

