Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender

Forumthread: in Userform Textbox nur Datumswerte zulassen

in Userform Textbox nur Datumswerte zulassen
26.02.2009 17:16:09
tursiops
Hallo!
Tante Google konnte mir nicht wirklich weiterhelfen. Wie kann ich einer Texttext im Userform beibringen, dass sie nur Datumswerte ( TT.MM.JJJJ) annehmen darf?
Gruß tursiops
Anzeige

8
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: in Userform Textbox nur Datumswerte zulassen
26.02.2009 17:28:01
Renee
Hi again,
In die UF:

Private Sub TextBox1_Exit(ByVal Cancel As MSForms.ReturnBoolean)
If IsDate(TextBox1) = False Then
MsgBox "Das ist kein valables Datum"
Cancel = True
End If
End Sub


GreetZ Renée

AW: in Userform Textbox nur Datumswerte zulassen
26.02.2009 17:38:36
tursiops
Hallo!
Danke für die schnelle Rückmeldung. Die Textbox sollte wirklich nur dieser Format (TT.MM.JJJJ) annehmen. Mit dem Vorschlag klappt auch tt.mm.jj oder tt.mm.j
Daraus resultiert im Test ein Geb.datum von 01.01.2021 - bei Eingabe 01.01.21
Ansonsten klappt die Fehlermeldung wie gewünscht.
Gruß tursiops
Anzeige
dies über ...Exit zu machen...
26.02.2009 17:48:47
Tino
Hallo,
finde ich persönlich nicht so toll.
Ist die Eingabe falsch, kann man z. Bsp. keinen beenden Button drücken.
Oder beim schließen über dass X wird auch eine Meldung ausgegeben.
Gruß Tino
Von Geburtstagen in der
26.02.2009 20:45:09
Renee
Vergangenheit, war aber nicht die Rede, turi.
GreetZ Renée
AW: in Userform Textbox nur Datumswerte zulassen
26.02.2009 17:30:23
Tino
Hallo,
wenn Du z. Bsp. einen Button hast der die Eingabe verarbeiten soll, kannst du es so machen.
Beispiel:
Private Sub CommandButton1_Click()
 If Not TextBox1 Like "dd.mm.yyyy" Then
  TextBox1.SetFocus
  MsgBox "Eingabe in Textbox ist Falsch"
  Exit Sub
 End If
    'anderer Code 
    '... 
End Sub


Gruß Tino

Anzeige
AW: in Userform Textbox nur Datumswerte zulassen
26.02.2009 17:45:05
tursiops
Hallo!
Sieht gut aus, allerdings nimmt die Box dann auch ein richtiges Datum, keine Ahnung wieso...
Testeingabe 12.12.2000 klappt z.B. nicht?
Gruß Frank
Korrektur
26.02.2009 17:45:12
Tino

Private Sub CommandButton1_Click()
If Not (TextBox1 Like "?.?.?" And IsNumeric(TextBox1)) Then
TextBox1.SetFocus
MsgBox "Eingabe in Textbox ist Falsch"
Exit Sub
End If
'anderer Code
End Sub


Anzeige
Das klappt!
26.02.2009 17:52:44
tursiops
Ich verneige mich mal wieder in tiefer Demut.
Lösung klappt perfekt - vielen Dank!!!
;
Anzeige
Anzeige

Infobox / Tutorial

Nur Datumswerte in einer Excel Userform Textbox zulassen


Schritt-für-Schritt-Anleitung

Um in einer Excel Userform sicherzustellen, dass die Textbox nur Datumswerte im Format TT.MM.JJJJ akzeptiert, kannst du folgende Schritte unternehmen:

  1. Öffne den VBA-Editor in Excel (Alt + F11).
  2. Füge eine Userform hinzu und platziere eine Textbox (TextBox1) sowie einen CommandButton (CommandButton1) darauf.
  3. Füge den folgenden VBA-Code in das Codefenster der Userform ein:
Private Sub CommandButton1_Click()
    If Not (TextBox1 Like "##.##.####") Or Not IsDate(TextBox1.Value) Then
        TextBox1.SetFocus
        MsgBox "Eingabe in Textbox ist Falsch. Bitte im Format TT.MM.JJJJ eingeben."
        Exit Sub
    End If
    'weiterer Code zur Verarbeitung
End Sub
  1. Schließe den VBA-Editor und teste die Userform.

Häufige Fehler und Lösungen

  • Fehler: Die Textbox akzeptiert auch Eingaben wie TT.MM.J oder TT.MM.JJ.

    • Lösung: Stelle sicher, dass der Code das richtige Format überprüft, indem du sowohl das Like-Statement als auch die IsDate-Funktion verwendest.
  • Fehler: Bei falscher Eingabe kann die Userform nicht geschlossen werden.

    • Lösung: Implementiere die Validierung im CommandButton_Click-Ereignis, sodass du die Eingabe überprüfen kannst, bevor die Form verarbeitet wird.

Alternative Methoden

Eine andere Möglichkeit, um sicherzustellen, dass nur Datumswerte eingegeben werden, ist die Verwendung des Exit-Ereignisses der Textbox. Hier ist ein Beispiel:

Private Sub TextBox1_Exit(ByVal Cancel As MSForms.ReturnBoolean)
    If Not IsDate(TextBox1.Value) Then
        MsgBox "Das ist kein valables Datum. Bitte im Format TT.MM.JJJJ eingeben."
        Cancel = True
    End If
End Sub

Diese Methode sorgt dafür, dass die Eingabe sofort beim Verlassen der Textbox überprüft wird.


Praktische Beispiele

Ein Beispiel zur Implementierung:

  1. Füge den oben genannten Code in die Userform ein.
  2. Teste verschiedene Eingaben:
    • Gültige Eingabe: 12.12.2000 – sollte akzeptiert werden.
    • Ungültige Eingabe: 12.12.20 oder 12.12.200 – sollte eine Fehlermeldung anzeigen.

Tipps für Profis

  • Datumsformat anpassen: Stelle sicher, dass das Datumsformat den regionalen Einstellungen deines Systems entspricht. Möglicherweise musst du das Format anpassen, wenn du mit Nutzern aus anderen Regionen arbeitest.
  • Eingabevalidierung: Überlege, ob du zusätzliche Eingabevalidierungen hinzufügen möchtest, um sicherzustellen, dass kein zukünftiges Datum eingegeben wird.

FAQ: Häufige Fragen

1. Wie kann ich das Datumsformat ändern? Du kannst das Datumsformat direkt im VBA-Code anpassen, indem du die Bedingungen im If-Statement änderst.

2. Was passiert, wenn ich eine ungültige Eingabe mache? Die Userform wird eine Fehlermeldung anzeigen und die Eingabe wird nicht akzeptiert, bis ein valides Datum eingegeben wird.

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige