Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1584to1588
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
Inhaltsverzeichnis

Problem bei Datumseingabe

Problem bei Datumseingabe
04.10.2017 10:08:14
Holger
Hallo liebe Experten,
ich habe eine Userform entwickelt, in der unter anderem in eine Textbox ein Datum geschrieben werden soll. Zur Überprüfung habe ich folgende Prozedur geschrieben:
Private Sub TextBox14_Exit(ByVal Cancel As _
MSForms.ReturnBoolean)
Dim a As Date
With Me.TextBox14
If Not IsDate(.Text) And Not .Text = "" Then
.Text = ""
MsgBox "Bitte ein gültiges Datum eingeben!"
Cancel = True
Else
On Error Resume Next
.Text = CDate(.Text)
a = Me.TextBox14.Text
If IsDate(a) Then
Me.TextBox14 = FormatDateTime(a, vbShortDate)
End If
End If
End With
End Sub
Diese funktioniert auch so lange der User über die Tab-Taste die Textbox verläßt. Wenn er jedoch mit der Maus in ein anderes Textfeld clickt um weiterzuarbeiten dann wird das Datum nicht in "DD.MM.JJJJ" umgesetzt.
Hat jemand eine Idee, wie ich das hinbekommen kann, dass in jedem Fall, wenn die Textbox verlassen wird, das Format umgesetzt wird?
Vielen Dank im Voraus
Gruß
Holger

4
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
Cancel = True
04.10.2017 10:41:00
lupo1
Wahrscheinlich muss Cancel = True immer gelten, also nicht nur in einem Zweig.
AW: Cancel = True
04.10.2017 12:28:59
Holger
Hallo Lupo,
vielen Dank für deine schnelle Antwort. Daran lag es leider nicht. Ich habe in der Zwischenzeit noch eine Antwort bekommen. Darin steht ein Hinweis der mich weitergebracht hat. Mir war nicht bewußt, dass es wichtig ist, aber die Textbox steht in einem Frame. Mir war die "Macht" der Frames nicht bewußt. Daher hatte ich es nicht erwähnt. Ich habe die Prüfroutine jetzt zusätzlich ins Exit-Event des Frames geschrieben und jetzt funktioniert es.
Sorry, war mein Fehler dass ich nicht alle Infos gegeben habe.
Vielen Dank nochmal.
Gruß
Holger
Anzeige
AW: Problem bei Datumseingabe - vermutlich Frames
04.10.2017 11:04:50
Daniel
Hi
verwendest du FRAMES auf deinem Tabellenblatt und deine TextBox liegt in einem eigenen Frame?
Frames sind sehr mächtige Objekte, ein Frame ist quasi eine Userform innerhalb der Userform.
Dh es gibt dann immer ein AcitveControl auf Userformebene und ein ActiveControl auf Frameebene.
Wenn du die TextBox im Frame anklickst, dann ist der Frame das AcitveControl auf Useformebene und die TextBox ist das ActiveControl auf Frameebene.
Wenn du dann ein anderes Steuerlement anklickst, welches nicht in diesem Frame liegt, dann verliert der Frame den Status des ActiveControl auf Userformebene, aber auf Frameebene bleibt die TextBox weiterhin aktiv! Weil die TextBox aktiv bleibt, wird auch ihr Exit-Event nicht ausgelöst.
(bei der Tab-Taste wechselst du wahrscheinlich auf ein anderes Steuerelement innerhalb des Frames)
Welche Lösungsmöglichkeiten gibt es nun?
wenn möglich, verzichte auf Frames.
Wenn es nur darum geht einen rechteckigen Rahmen zu ziehen, kannst du auch ein Label mit Rahmenlinien und transparenten Hintergrund verwenden.
Willst die Frames behalten, müsstest du einen entsprechenden Code zusätzlich im Exit-Event des Frames platzieren (denn dieses wird dann ausgelöst) oder prüfen, ob es ein alternatives Event gibt, welches dann auch in diesem Fall reagiert und dieses Verwenden (mir würde da das AfterUpdate-Event einfallen, aber wie gesagt, dessen verhalten muss du prüfen)
Gruß Daniel
Anzeige
AW: Problem bei Datumseingabe - vermutlich Frames
04.10.2017 12:32:13
Holger
Hallo Daniel,
vielen Dank für die ausführliche Beschreibung. Das hat mir sehr geholfen. Du hattest Recht, ich habe Frames benutzt. Mir war die "Macht" der Frames nicht bewußt.
Ich habe die Prüfung jetzt zusätzlich ins Exit-Event des Frames geschrieben. Jetzt funktioniert es.
Vielen Dank nochmal
Gruß
Holger

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige