Live-Forum - Die aktuellen Beiträge
Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender

Forumthread: TextBox nur Datum oder leer gültig?

TextBox nur Datum oder leer gültig?
04.11.2005 17:19:13
Peter
Hallo liebe Helfer,
mit den 3 nachstehenden Codes wird in der TextBox nur die Eingabe eines Datums zugelassen. Funktioniert auch einwandfrei (Dank der CD von Hans). Ich möchte allerdings auch zulassen, dass man die TextBox verlassen kann, wenn sie leer ist (also entweder sie kann leer sein oder ein gültiges Datum enthalten)
Wer kann da helfen?

Private Sub TexBox5_BeforeUpdate(ByVal Cancel As MSForms.ReturnBoolean)
If Len(TexBox5.Text) < 10 Then Cancel = True
End Sub


Private Sub TexBox5_Change()
If Len(TexBox5.Text) = 10 Then
If IsDate(TexBox5.Text) = False Then
MsgBox "Kein gültiges Datumsformat"
End If
End If
End Sub


Private Sub TexBox5_KeyPress(ByVal KeyAscii As MSForms.ReturnInteger)
If Chr(KeyAscii) Like "[0-9. ]" = False Then
KeyAscii = 0
End If
End Sub

Vielen Dank
Peter S
Anzeige

2
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: TextBox nur Datum oder leer gültig?
04.11.2005 18:42:05
Luschi
Hallo Peter,
so geht's auch mit leerer Textbox:
Private Sub TextBox5_BeforeUpdate(ByVal Cancel As MSForms.ReturnBoolean)
Dim xLen As Integer
xLen = Len(TextBox5.Text)
If xLen > 0 And xLen < 10 Then
Cancel = True
End If
End Sub
Private Sub TextBox5_KeyPress(ByVal KeyAscii As MSForms.ReturnInteger)
If Not (Chr(KeyAscii) Like "[0-9. ]") Then
KeyAscii = 0
End If
End Sub
Private Sub TextBox5_Change()
If Len(Me.TextBox5.Text) = 10 Then
If Not IsDate(TextBox5.Text) Then
MsgBox "Kein gültiges Datumsformat"
End If
End If
End Sub

Gruß von Luschi
aus klein-Paris
Anzeige
Hallo Luschi----Danke, habs noch etwas erweitert
07.11.2005 08:19:08
Peter
Hallo nach Klein-Paris,
vielen Danke für Deine Hilfe, klappt wirklich bestens. Ich habe den Code noch um 2 Zeilen erweitert. Ich wollte zusätzlich noch sicherstellen, dass man das Feld nicht mit einer falschen Eingabe verlassen kann, dies wäre jedoch nach erscheinen der MsgBox möglich gewesen.

Private Sub TextBox5_BeforeUpdate(ByVal Cancel As MSForms.ReturnBoolean)
Dim xLen As Integer
xLen = Len(TextBox5.Text)
If xLen > 0 And xLen < 10 Then
Cancel = True
End If
End Sub


Private Sub TextBox5_KeyPress(ByVal KeyAscii As MSForms.ReturnInteger)
If Not (Chr(KeyAscii) Like "[0-9. ]") Then
KeyAscii = 0
End If
End Sub


Private Sub TextBox5_Change()
If Len(Me.TextBox5.Text) = 10 Then
If Not IsDate(TextBox5.Text) Then
MsgBox "Kein gültiges Datumsformat, bitte im Format XX.XX.XXXX eingeben"
TextBox5.Text = ""
TextBox5 SetFocus
End If
End If
End Sub

Also nochmals besten Dank
Peter S.
Anzeige
;
Anzeige
Anzeige

Infobox / Tutorial

TextBox nur Datum oder leer gültig


Schritt-für-Schritt-Anleitung

Um in einer Excel VBA TextBox nur ein gültiges Datum oder einen leeren Wert zuzulassen, kannst du den folgenden Code verwenden. Dieser Code stellt sicher, dass die Eingabe entweder ein Datum im Format TT.MM.JJJJ ist oder die TextBox leer bleibt.

  1. Öffne den VBA-Editor in Excel (Alt + F11).
  2. Füge eine UserForm hinzu und platziere eine TextBox (z.B. TextBox5).
  3. Füge den folgenden Code in das Codefenster der UserForm ein:
Private Sub TextBox5_BeforeUpdate(ByVal Cancel As MSForms.ReturnBoolean)
    Dim xLen As Integer
    xLen = Len(TextBox5.Text)
    If xLen > 0 And xLen < 10 Then
        Cancel = True
    End If
End Sub

Private Sub TextBox5_KeyPress(ByVal KeyAscii As MSForms.ReturnInteger)
    If Not (Chr(KeyAscii) Like "[0-9. ]") Then
        KeyAscii = 0
    End If
End Sub

Private Sub TextBox5_Change()
    If Len(Me.TextBox5.Text) = 10 Then
        If Not IsDate(TextBox5.Text) Then
            MsgBox "Kein gültiges Datumsformat, bitte im Format TT.MM.JJJJ eingeben"
            TextBox5.Text = ""
            TextBox5.SetFocus
        End If
    End If
End Sub

Dieser Code ermöglicht es dir, die TextBox nur mit gültigen Datumsangaben zu befüllen oder sie leer zu lassen.


Häufige Fehler und Lösungen

  1. Fehler: Die TextBox akzeptiert keine Eingabe, selbst wenn sie leer ist.

    • Lösung: Stelle sicher, dass der Code in der TextBox5_BeforeUpdate-Subroutine richtig implementiert ist. Achte darauf, dass die Bedingungen korrekt formuliert sind.
  2. Fehler: Das Datum wird als ungültig erkannt, obwohl es im richtigen Format eingegeben wurde.

    • Lösung: Überprüfe, ob das Datumsformat in deiner Region richtig eingestellt ist. Manchmal kann es zu Missverständnissen kommen, wenn das eingestellte Format von den regionalen Einstellungen abweicht.

Alternative Methoden

Eine alternative Methode zur Validierung von Datumsangaben in einer TextBox könnte die Verwendung von Masken sein. Mit Masken kannst du sicherstellen, dass der Benutzer nur in einem bestimmten Format eingibt.

Beispiel:

Private Sub TextBox5_KeyPress(ByVal KeyAscii As MSForms.ReturnInteger)
    If Not (Chr(KeyAscii) Like "[0-9.]") Then
        KeyAscii = 0
    End If
End Sub

Hiermit kannst du auch sicherstellen, dass nur Ziffern und Punkte eingegeben werden.


Praktische Beispiele

Hier sind einige praktische Beispiele, wie du die TextBox für Datumseingaben nutzen kannst:

  • Eingabe eines Datums: Der Benutzer gibt 15.05.2023 in die TextBox ein. Wenn das Datum korrekt ist, wird es akzeptiert.
  • Leere TextBox: Der Benutzer verlässt die TextBox, ohne etwas einzugeben. Die Eingabe wird ebenfalls akzeptiert.

Durch diese Beispiele kannst du die Funktionsweise der Validierung besser verstehen und anwenden.


Tipps für Profis

  • Nutze die IsDate()-Funktion, um sicherzustellen, dass das eingegebene Datum auch wirklich gültig ist.
  • Implementiere eine Fehlerbehandlung, um den Benutzer über falsche Eingaben zu informieren.
  • Teste deine UserForm gründlich, um sicherzustellen, dass alle Eingaben wie gewünscht verarbeitet werden.

FAQ: Häufige Fragen

1. Wie kann ich sicherstellen, dass nur Datumswerte im Format TT.MM.JJJJ eingegeben werden?
Du kannst die Eingabe mit der IsDate()-Funktion überprüfen und eine MsgBox anzeigen, falls die Eingabe ungültig ist.

2. Was passiert, wenn ein Benutzer ein ungültiges Datum eingibt?
In diesem Fall wird eine MsgBox angezeigt, die den Benutzer auffordert, ein gültiges Datumsformat einzugeben. Das TextBox-Feld wird dabei geleert, und der Fokus wird zurückgesetzt.

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Entdecke mehr
Finde genau, was du suchst

Die erweiterte Suchfunktion hilft dir, gezielt die besten Antworten zu finden

Suche nach den besten Antworten
Unsere beliebtesten Threads

Entdecke unsere meistgeklickten Beiträge in der Google Suche

Top 100 Threads jetzt ansehen
Anzeige