Supportnet Computer
Planet of Tech

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

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

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
Zitat:
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.

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

Antwort 6 von Locke

Tatsächlich, das klappt.

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?

Antwort 8 von Saarbauer

Hallo @Traurig ,

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

Antwort 10 von michel123

hi traurig :)

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.

Ich möchte kostenlos eine Frage an die Mitglieder stellen:


Ähnliche Themen:


Suche in allen vorhandenen Beiträgen: