Supportnet Computer
Planet of Tech

Supportnet / Forum / Tabellenkalkulation

Datumsprüfung in VBA





Frage

Hallo zusammen in einem Form habe ich diverse Eingabefelder definiert, u.a. ein Datumsfeld. Für die Eingabekontrolle möchte ich einen entsprechenden Code (Afterupdate) eingeben. Ich habe folgendes definiert, stellt mich aber überhaupt nicht zufrieden. If Not IsDate(Me.txt_dat_test) Then Exit Sub End If Je nach Eingabe startet der Debugger; hat jemand ne bessere Idee? Danke für ein Feedback. Gruss Rahel

Antwort 1 von Rahel04

Es muss doch irgendeine Möglichkeit geben, die Eingabe auf ein Datum zu überprüfen. Bitte helft mir.

Danke & Gruss
Rahel

Antwort 2 von coros

Hi,

nach was soll den geprüft werden? Ob es sich bei der Eingabe um ein Datumsformat handelt, oder nach einem bestimmten Datum oder nach was?

MfG,
coros
Da hier der einzige Lohn für die Helfer eine Rückmeldung ist, wäre es nett, wenn Du ein
Feedback abgeben könntest, ob der Lösungsvorschlag Dein Problem gelöst hat.

Antwort 3 von Rahel04

Hallo

gibt der Anwender z.B. 01.01.200 ein, also ohne die 4, startet der Debugger. Wenn ich das Programm verkaufen will, sollte dies nicht passieren...

danke

Antwort 4 von coros

Nabend Rahel04,

hier mal ein Code als Lösungsvorschlag. Kopiere den Code in Deine UserForm.

Private Sub TextBox1_BeforeUpdate(ByVal Cancel As MSForms.ReturnBoolean)
With TextBox1
If Not IsDate(.Text) Or _
InStr(.Text, ":") Or _
.TextLength <> 10 Then
Cancel = True
Beep
MsgBox "Falsche Datumseingabe." & Chr(13) _
& "Bitte Datum im Format TT.MM.JJJJ eingeben"
.SetFocus
.SelStart = 0
.SelLength = .TextLength
End If
End With
End Sub


Bei dem Code wird die Datumseingabe überprüft. Wenn ein Fehler auftritt, z.B. es wird eine Zahl im Datum vergessen, erscheint eine Fehlermeldung und der Focus wird wieder auf die TextBox gesetzt. Erst wenn ein Datum in z.B. der richtigen Länge eingegeben wurde, kann in der UserForm weitergearbeitet werden.

Ausserdem solltest Du noch das Schließen der UserForm über das Kreuz oben rechts verhindern, da es mit dem obigen Code sonst zu einem Fehler kommt. Das machst Du am besten mit dem nachfolgenden Code, den Du ebenfalls in die UserForm kopieren mußt.

Private Sub UserForm_QueryClose(Cancel As Integer, CloseMode As Integer)
If CloseMode = 0 Then
MsgBox "Bitte schließen Sie die Anwendung mit der -Ende- Schaltfläche.", vbCritical
Cancel = 1
End If
End Sub


So, ich hoffe, ich konnte Dir ein wenig weiterhelfen. Bei Problemen mit dem Code oder Fragen melde Dich noch mal.

MfG,
coros
Da hier der einzige Lohn für die Helfer eine Rückmeldung ist, wäre es nett, wenn Du ein
Feedback abgeben könntest, ob der Lösungsvorschlag Dein Problem gelöst hat.

Antwort 5 von Rahel04

Hi Coros,

danke für Deine Hilfe! Hat mir super weiter geholfen! ... mit anderen Worten: Hat bestens funktioniert.

Gruss
Rahel04

Antwort 6 von coros

Moin Rahel04,

freut mich, dass Du mit dem Code etwas anfangen konntest. Danke auch für die Rückmeldung.

MfG,
coros
Jeder macht was er will, keiner macht was er soll, aber alle machen mit.

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


Ähnliche Themen:


Suche in allen vorhandenen Beiträgen: