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

Forumthread: Datumsprüfung aus Textbox /Rücklöschtaste

Datumsprüfung aus Textbox /Rücklöschtaste
02.12.2018 18:41:57
Hardy
Hallo 👋
Ich habe hier im Forum nachfolgende Datums-Prüfung von Hajo gefunden. Die klappt auch wunderbar, hat aber einen kleinen Schönheitsfehler. Wenn ich die Rücktaste (löschen) betätige, löscht er mir den eingefügten Punkt nicht mehr, wenn ich mich vertippt habe. Hierzu muss ich immer mit den Pfeiltasten navigieren, um zu wieder in den Tag zu kommen. Kann man sowas irgendwie abändern, dass die rücklöschtaste auch funktioniert?
Grüße Harry
Option Explicit
Dim BoEnter As Boolean
Private Sub TextBox6_KeyPress(ByVal KeyAscii As MSForms.ReturnInteger)
'   erstellt von Hajo.ziplies@web.de  Stand 01.08.03
'   Datumseingabe  01.01.03;1.1.03 oder komlettes Jahr
'   Eingabe des Tages und des Monat zweistellig werden die Punkte automatisch gesetzt
'   sie können nur gelöscht durch markierung des punktes und der Zahl davor
'   Buchstaben werden ausgeschlossen, nur Zahlen und Punkt
'   die Überprüfung ob Datum erfolgt in

Private Sub TextBox6_AfterUpdate()
Select Case KeyAscii
Case Asc("0") To Asc("9")
Case Asc(".")
If Len(TextBox6) = 0 Then
KeyAscii = 0
Else
If Len(TextBox6) - Len(Application.Substitute(TextBox6, ".", "")) = 2 Then
KeyAscii = 0
ElseIf Len(TextBox6) > 1 Then
If Mid(TextBox6, Len(TextBox6), 1) = "." Then KeyAscii = 0
Else
KeyAscii = Asc(".")
End If
End If
Case Else
KeyAscii = 0
End Select
End Sub
Private Sub TextBox6_Change()
If BoEnter = True Then Exit Sub
If Len(TextBox6) = 2 Then
If InStr(TextBox6, ".") = 0 And BoEnter = False Then TextBox6 = TextBox6 & "."
ElseIf Len(TextBox6) = 5 Then
If Len(TextBox6) - Len(Application.Substitute(TextBox6, ".", "")) 
Private Sub TextBox6_AfterUpdate()
BoEnter = True
If Right(TextBox6, 1) = "." Then TextBox6 = Mid(TextBox6, 1, Len(TextBox6) - 1)
'   Jahreszahl vom aktuellen Jahr ergänzen falls nicht vorhanden
If Len(TextBox6) - Len(Application.Substitute(TextBox6, ".", "")) = 1 Then
TextBox6 = TextBox6 & "." & Year(Date)
End If
If IsDate(TextBox6.Text) Then
If Format(CDate(TextBox6.Value), "dd.mm.yy")  TextBox6 Then
MsgBox "Das Datum wurde übersetzt"
End If
TextBox6 = Format(CDate(TextBox6.Value), "dd.mm.yy")
Else
TextBox6 = ""
End If
BoEnter = False
End Sub

Anzeige

3
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
Zur Verhinderung jeglicher Probleme …
02.12.2018 19:40:51
RPP63
Moin!
füge das Datum in der Kurzform 3-5 oder 3/5 (jeweils auf dem Numpad) in die Textbox ein.
Beides ist für Excel der 03.05.2018
Im Exit-Event der Textbox prüfst Du auf gültiges Datum und wandelst das Datum in ein "echtes" um.
If IsDate(TextBox1) Then TextBox1 = CDate(TextBox1)
Gruß Ralf
Anzeige
AW: Das Prolem ist die Löschtaste
02.12.2018 22:05:53
Harry
Hallo Ralf,
ich möchte aber, dass das Datum so eingegeben werden kann, dass der Punkt automatisch kommt. Würde nur gerne auch die Löschtaste verwenden können. Das ist das einzige Problem.
Kann man das irgendwie lösen?
03.12.2018 11:04:09
Hardy
Kann das jemand lösen ?
;

Forumthreads zu verwandten Themen

Anzeige
Entdecke relevante Threads

Schau dir verwandte Threads basierend auf dem aktuellen Thema an

Alle relevanten Threads mit Inhaltsvorschau entdecken
Anzeige

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