online 1
gast (50)

/ Forum / Tabellenkalkulation

TabellenkalkulationTabellenkalkulation

Fragevon Marc_K. vom 06.10.2021, 12:31 Options

Problem mit Uhrzeiten Makro in Excel

Hallo Leute,

ich habe ein problem mit dem unten folgenden Makro in Excel:
Das Makro sorgt dafür das ich Uhrzeiten ohne Doppelpunkt eingeben kann, was auch soweit funktioniert.
Das Problem ist wie folgt, wenn die Zellformate in Standard formatiert sind und ich eine falsche Uhrzeit eingebe z.B. 2500 (25:00 Uhr) kommt das Fenster "Falsche Eingabe" aber wenn die Zellformate in "hh:mm" formatiert, was das Makro ja nach einer richtigen Eingabe selber macht, und ich in die Zelle erneut eine Zeit eingben will und diese falsch ist kommt nicht die Fehlermeldung sondern es wird in die Zelle 00:00 geschrieben.

Wie muss ich das Makro ändern, damit ich die Fehler Meldung bekomme?

Habe mir vielleicht gedacht am Amfang des Makros zu sagen das es die Zelle in Standard (General) formatieren soll, aber komme nicht dahinter wie ich den mache.

Habe leider nicht fast keine Ahnung von VBA und bei Google habe ich leider auch nichts gefunden, womit ich was anfangen konnte. :-(

Das Makro ist wie folgt:

Private Sub Worksheet_Change(ByVal Target As Excel.Range)
If Target.Count > 1 Then Exit Sub
Dim RaBereich As Range ' Bereich der Wirksamkeit
Dim RaZelle As Range ' zur Zeit untersuchte Zelle
Dim InS As Integer ' Variable für Stunde
Dim InM As Integer ' Variable für Minute
Set RaBereich = Range("F7:F31, G7:G31, I7:I31") ' Bereich der Wirksamkeit festlegem
' noch mehr Bereiche
' Set RaBereich = Union(Range("h7:h31"), Range("L7:R26"), Range("U7:AA26"), Range("AD7:AJ26"))
ActiveSheet.Unprotect "Passwort" ' Schutz der Tabelle aufheben
Set RaBereich = Intersect(RaBereich, Range(Target.Address))
If RaBereich Is Nothing Then Exit Sub
Application.EnableEvents = False ' Reaktion auf Zellveränderung abschalten
For Each RaZelle In RaBereich ' Schleife falls mehr als eine Zelle mit einmal verändert
With RaZelle
If .Value <> "" Then
If IsNumeric(.Value) And InStr(.Value, ":") = 0 And _
InStr(.Value, ",") = 0 And Len(RaZelle) < 5 Then
If Len(Target.Value) > 2 Then
InS = Left(.Value, Len(.Value) - 2)
InM = Right(.Value, 2)
Else
' Stunden haben das Primat
' InS = .Value
' InM = 0
' Minuten haben das Primat
InS = 0
InM = .Value
End If
' überprüfen ob Eingabe in ein Datum umgewandelt werden kann
If IsDate(InS & ":" & InM) Then
.NumberFormat = "hh:mm" ' Zellformat setzen
.Value = InS & ":" & InM ' Zeit in Zelle schreiben
ElseIf InStr(.Text, ":") = 0 Then
MsgBox "Falsche Eingabe"
Target = ""
End If
ElseIf InStr(.Text, ":") = 0 Then
MsgBox "Falsche Eingabe"
Target = ""
End If
End If
End With
Next RaZelle
ActiveSheet.Protect "Passwort" ' Schutz der Tabelle aufheben
Application.EnableEvents = True ' Reaktion auf Zellveränderung einschalten
End Sub

Hoffe das mir einer helfen kann und schon mal besten dank im voraus.

Gruss Marc_K.


Antwort schreiben

Antwort 1 von malSchauen vom 06.10.2021, 12:50 Options

Hi,

Versuche es mal an folgender Stelle:

Application.EnableEvents = False ' Reaktion auf Zellveränderung abschalten
For Each RaZelle In RaBereich ' Schleife falls mehr als eine Zelle mit einmal verändert
  With RaZelle
    .NumberFormat = "General"      ' StandardFormat einstellen
    If .Value <> "" Then
      If IsNumeric(.Value) And InStr(.Value, ":") = 0 And _
      InStr(.Value, ",") = 0 And Len(RaZelle) < 5 Then


bye
malSchauen

Antwort 2 von Marc_K. vom 06.10.2021, 21:36 Options

Hallo malSchauen,

ich danke dir, so funktioniert es besten. :-)
Vielen dank für die schnelle antwort.

Gruss
Marc_K.

Ähnliche Themen

excel makro
Skatute  02.04.2008 - 23 Hits - 10 Antworten

Sortieren nach Uhrzeiten in Excel
Petra0403  18.05.2008 - 28 Hits - 10 Antworten

Excel-Makro
Marvin123  27.08.2008 - 52 Hits - 13 Antworten

Excel Problem Zellen verbinden per Makro wenn Zellinhalt Text
Excel_Amateur  15.02.2009 - 1456 Hits - 4 Antworten

Excel Makro
johnny1982  27.02.2009 - 383 Hits - 19 Antworten

Hinweis

Diese Frage ist schon etwas älter, Sie können daher nicht mehr auf sie antworten. Sollte Ihre Frage noch nicht gelöst sein, stellen Sie einfach eine neue Frage im Forum..

Neue Einträge

Version: supportware 1.9.150 / 10.06.2022, Startzeit:Thu Jan 8 21:07:44 2026