Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1660to1664
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
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

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
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 ?
Anzeige

307 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige