ich habe in einem Forum einen VBA-Code gefunden, der folgende Prüfung automatisch bei einer Eingabe durchführt.
Wenn in einer Spalte (Datumsspalte) das Datum nicht korrekt eingeben wird, kommt eine Fehlermeldung.
Da in meiner Tabelle in 7 Spalten ein Datum korrekt eingegeben werden muss, habe ich den Code einfach 7 Mal hintereinander kopiert und nur die Spaltennummer angepasst.
Dies funktioniert soweit ganz gut bis auf eine Kleinigkeit (Schönheitsfehler).
Beispiel!
Gibt man in der betreffenden Spalte folgendes ein:
Buchstaben (A) = Fehler
Dezimalzahl mit einem Komma (2,5) = Fehler
nur eine Zahl (1 = 1.1.1900) (wird zum Datum) = o.k.
Datum mit Punkt (12.06.2016) geschrieben = o.k.
Datum mit Komma (12,06,2016) geschrieben = o.k. !!!
Frage:
Ist es möglich den Code so zu modifizieren, dass auch die Kommaschreibweise als Fehler erkannt wird?
Und noch eine Frage zu meinem 7fach Aufbau.
Ist dies so korrekt, oder könnte man die Abfrage der 7 Spalten zusammenfassen,
so dass der Code nicht mehr 7 Mal hintereinander stehen muss?
Hier der Code:
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Column = 24 Then
If Not IsDate(Target.Text) Then
MsgBox ("Die Datums-Eingabe ist nicht korrekt!")
Application.EnableEvents = False
Target.ClearContents
Application.EnableEvents = True
Exit Sub
End If
End If
If Target.Column = 25 Then
If Not IsDate(Target.Text) Then
MsgBox ("Die Datums-Eingabe ist nicht korrekt!")
Application.EnableEvents = False
Target.ClearContents
Application.EnableEvents = True
Exit Sub
End If
End If
If Target.Column = 26 Then
If Not IsDate(Target.Text) Then
MsgBox ("Die Datums-Eingabe ist nicht korrekt!")
Application.EnableEvents = False
Target.ClearContents
Application.EnableEvents = True
Exit Sub
End If
End If
If Target.Column = 27 Then
If Not IsDate(Target.Text) Then
MsgBox ("Die Datums-Eingabe ist nicht korrekt!")
Application.EnableEvents = False
Target.ClearContents
Application.EnableEvents = True
Exit Sub
End If
End If
If Target.Column = 29 Then
If Not IsDate(Target.Text) Then
MsgBox ("Die Datums-Eingabe ist nicht korrekt!")
Application.EnableEvents = False
Target.ClearContents
Application.EnableEvents = True
Exit Sub
End If
End If
If Target.Column = 31 Then
If Not IsDate(Target.Text) Then
MsgBox ("Die Datums-Eingabe ist nicht korrekt!")
Application.EnableEvents = False
Target.ClearContents
Application.EnableEvents = True
Exit Sub
End If
End If
If Target.Column = 33 Then
If Not IsDate(Target.Text) Then
MsgBox ("Die Datums-Eingabe ist nicht korrekt!")
Application.EnableEvents = False
Target.ClearContents
Application.EnableEvents = True
Exit Sub
End If
End If
End Sub
Vielen Dank für eventuelle Unterstützung.
Gruß Jakob