Live-Forum - Die aktuellen Beiträge
Datum
Titel
24.04.2024 19:29:30
24.04.2024 18:49:56
Anzeige
Archiv - Navigation
964to968
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
964to968
964to968
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

Datum in userform

Datum in userform
30.03.2008 12:00:26
Peter
Hallo,
ich habe mir aus der ForumArchiv-CD folgenden Beispiel für die Datumseingabe in eine Textbox einer userform herausgesucht und versucht, es etwas zu erweitern - leider ohne Erfolg.
An zwei Punkten scheitere ich immer wieder
a) bei der Überprüfung, ob eine Ziffer eingegeben wurde : If Not Right(tbDatum, 1) Like "[0-9]" Then
b) wenn ein ungültiges Datum eingegeben wurde:
MsgBox "Kein gültiges Datum eingegeben!", vbCritical, "Falsches Datum"
tbDatum = ""
'
' jetzt soll der Cursor wieder in die Textbox gesetzt werden, um korrektes Datum einzugegeben
'mit frmDatum.tbDatum.SetFocus klappt das nicht
s. Makrobefehle
Kann mir jemand helfen und einen Tipp geben, was ich verändern muss?
Besten Dank im Voraus an den hilfreichen VBA-Experten
Peter
' Datumseingabe 01.01.03;1.1.03 oder komlettes Jahr
' Bei zweistelliger Eingabe des Tages und des Monat 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 werden akzepiert
' die Überprüfung ob Datum erfolgt in Private Sub tbDatum_AfterUpdate()

Private Sub tbDatum_Change()
If Not Right(tbDatum, 1) Like "[0-9]" Then
'  dann letzte Eingabe löschen, der Cursor soll dann in der Textbox für neue Eingabe stehen
'  mit Right(tbDatum, 1).select und selection.Delete funktioniert das nicht
End If
If tbDatum.Tag = "1" = True Then Exit Sub
If Len(tbDatum) = 2 Then
If InStr(tbDatum, ".") = 0 Then tbDatum = tbDatum & "."
ElseIf Len(tbDatum) = 5 Then
If Len(tbDatum) - Len(Application.Substitute(tbDatum, ".", "")) 



Private Sub tbDatum_AfterUpdate()
tbDatum.Tag = 1
If Right(tbDatum, 1) = "." Then tbDatum = Mid(tbDatum, 1, Len(tbDatum) - 1)
'   Jahreszahl vom aktuellen Jahr ergänzen falls nicht vorhanden
If Len(tbDatum) - Len(Application.Substitute(tbDatum, ".", "")) = 1 Then
tbDatum = tbDatum & "." & Year(Date)
End If
If IsDate(tbDatum.Text) Then
tbDatum = Format(CDate(tbDatum.Value), "dd.mm.yyyy")
Else
MsgBox "Kein gültiges Datum eingegeben!", vbCritical, "Falsches Datum"
tbDatum = ""
'jetzt soll der Cursor wieder in die Textbox gesetzt werden, korrektes Datum einzugegeben
'mit     frmDatum.tbDatum.SetFocus klappt das nicht
End If
tbDatum.Tag = ""
End Sub


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

Betreff
Datum
Anwender
Anzeige
AW: Datum in userform
30.03.2008 12:52:00
Peter
Hallo Hajo,
das Beispiel ist Klasse. Ich habe alles gefunden, was ich brauche und konnte meine uf entsprechend anpassen. Jetzt funktioniert alles. Danke.
Ich wünsche noch einen schönen Sonntag
Güße Peter

AW: Datum in userform
30.03.2008 12:19:42
Peter
Hallo Hajo,
Danke für den Hinweis. Das Beispiel ist recht umfangreich. Das muss ich mir erst genauer ansehen, so gut bin ich nicht in VBA, dass ich sofort überblicke, was ich bei mir ändern muss. Ich werde mich wieder melden.
Besten Dank
Peter
Anzeige

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige