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

Datumprüfung für Textbox läuft zu früh an!

Forumthread: Datumprüfung für Textbox läuft zu früh an!

Datumprüfung für Textbox läuft zu früh an!
13.08.2024 13:31:30
Tom
Hallo liebe Gemeinde.

Danke für die Aufnahme. Ich suche hier schon sehr lange nach Problemlösungen und finde es toll wie gut das hier zu funktionieren scheint.

Bisher konnte ich mir immer selbst helfen, doch jetzt bin ich erstmals an einem Punkt wo ich selber nicht mehr weiter komme und auch keine Lösung zu meinem Problem habe.

Eigentlich sollte es ja ziemlich easy sein und hat sich dann doch als tricky herausgestellt. Für mich :D

Da es mein erstes Anliegen ist versuch ich mal alles so genau wie möglich zu beschreiben.

Ziel:

Eine Userform enthält eine Multipage mit 4 Seiten. In den 4 Seiten sind Textfelder, Comboboxen, OptionButtons und Labels enthalten und teilweise in Frames gesetzt.
CB2 wird aktiv, wenn CB1 einen Wert enthält. Sobald Cb2 einen Wert hat wird ein Textfeld aktiviert. Das funktioniert alles prima.
Doch jetzt passiert etwas was ich nicht ganz begreife. Sobald das Textfeld beschriftet wird werden die restlichen Labels, Textboxen etc aktiviert. UND es werden die restlichen Seiten im Multipage aktiviert. Auf Seite soll dann
voneinander sein und bei befüllten CBs oder Textfeld schaltet dies andere CBs oder Textfelder frei
Ich bin dabei eine Userform zu erstellen um Daten für neue Items einzupflegen. Textfelder, Comboboxen, OptionButtons, Freischalten von Objekten.. Funktioniert bisher echt super.

Wo ist mein Problem:

Ich überprüfe einige Punkte und erst wenn Werte eingegeben wurden aktivieren sich andere Textfelder, Options usw. Funktioniert auch.

Jetzt möchte ich aber in einem Textfeld prüfen, ob ein Datum eingegeben wurde. Falls nicht soll über eine MsgBox eine Meldung aufpoppen.
Er prüft mir das Feld auch und gibt Rückmeldung. Aber ich bekomme die Meldung schon, wenn ich zwei Steps vorher eine Auswahl über OptionButton treffe.

Ich versuch es mal ohne Code zu beschreiben.

Ich habe eine Multipage mit 4 Seiten

Auf Seite 1 werden Daten eingepflegt über ComboBox und Textfeld. Man geht Schritt für Schritt durch.
cb1 füllen aktiviert cb2 und cb2 aktiviert textfeld1. Sobald Textfeld1 ausgefüllt ist, werden die Seiten vom Multipage freigeschaltet. Auf Seite hat man noch zwei Spalten mit je 3 Optionbuttons die ausgewählt werden sollen.

SO jetzt zu dem Fehler. In dem gleichen Frame mit den Auswahlmöglichkeiten habe ich ein Textfeld in dem ein Datum eingetragen werden soll. Ich möchte dieses Textfeld beim verlassen überprüfen, ob ein plausibles Datum eingegeben wurde. Klingt doch gar nicht schwer, oder?
Jetzt ist es so, sobald ich auf Seite zwei gehe und versuche die erste Auswahl zu treffen, erscheint die MsgBox mit der Mitteilung "Date only!". Also ja so soll es schon sein, dass wenn kein Datum drin steht die Meldung kommt, aber wieso wird schon geprüf bevor ich in das Textfeld gehe bzw verlasse?


Hier der Code für das Textfeld:

Private Sub TextBox1_Exit(ByVal Cancel As MSForms.ReturnBoolean)


With TextBox1

If Not IsDate(.Text) Then
MsgBox "Date only!"
.SelStart = 0
.SelLength = .TextLength
Cancel = True
End If
End With

End Sub


Das sollte doch so funktionieren? Aber wieso prüft er das schon viel zu früh?


Kann mir bitte jemand weiterhelfen?

Vielen Dank für Eure Hilfe :)

LG Tom


Anzeige

14
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Datumprüfung für Textbox läuft zu früh an!
13.08.2024 13:43:54
Oberschlumpf
Hi Tom,

nur bis hierhin "...Auf Seite soll dann voneinander sein und bei befüllten CBs oder Textfeld schaltet dies andere CBs oder Textfelder frei..." habe ich mitgelesen.

Warum?
Weil ich von der Grammatik her diesen Satz nicht verstehe - und somit auch den Rest nicht verstehen würde...

Eine Bitte hab ich:
Zeig doch bitte per Upload eine Excel-Bsp-Datei mit mindestens all den Controls, die erforderlich sind, um dein Problem auch sehen zu können.
Und...mit Datei könnten wir auch selbst "mittesten" und dir vllt sogar eine/einige Lösungsideen vorschlagen.

Ciao
Thorsten
Anzeige
AW: Datumprüfung für Textbox läuft zu früh an!
14.08.2024 07:53:23
Tom
Guten Morgen.

Tut mir Leid, ich weiß nicht was mit dem Text passiert ist. Die angesprochene Zeile ist jedenfalls völliger Quark, da war mein Kopf anscheinend schon völligst Banane :D das war wohl ein copy paste fehler XD

https://www.herber.de/bbs/user/171608.xlsm

Hier eine Bsp Datei.

Ah jetzt hab ich leider einen Button vergessen. Bitte über vba starten.

Ihr werdet ja sehen was der Fehler ist. Die Prüfung findet zum einen zu früh statt und ich bin mir nicht sicher ob auch ganz richtig???

Ich hoff diesmal passt alles um auch Helfen zu können :)

Danke nochmal :)



Anzeige
AW: Datumprüfung für Textbox läuft zu früh an!
14.08.2024 08:30:08
Oberschlumpf
Hi,

nur erst mal so was wie ne "Zwischeninfo".

Schau dir mal den Code zur Textbox "TextBoxModelDescription" an!

Wenn Text = "" dann alle Controls.Enabled = False
Wenn aber Text > "" DANN ALLE Controls.Enabled = TRUE ...und da wundert es dich, dass nach Eingabe schon nach dem 1. Zeichen in Textbox "TextBoxModelDescription" alle anderen Controls verfügbar sind?

Ich versuch mal mein Glück mit deiner Datei.
Da das aber mit Sicherheit was länger dauern kann, jetzt erst mal nur meine 1. Antwort auf deine Datei.

Ach ja....is zwar schön, dass du mir wegen der schlechten Grammatik in dem einen Satz zustimmst - aber..ähh?...mir, bzw uns erklärt, was denn nun dieser Satz bedeuten soll, haste noch immer nich! - das macht das Ganze nich einfacher^^

Ciao
Thorsten


Anzeige
AW: Datumprüfung für Textbox läuft zu früh an!
14.08.2024 08:44:23
Tom
Der Code von dem Teil ist iO. Es sollen alle freigeschaltet werden, wenn ein Wert in dem Textfeld steht.

Sorry ich weiß nicht was mir da gestern bei der Verfassung passiert ist. Ist mir tatsächlich auch leicht peinlich :D Aber naja passiert halt
bitte wer anders...ich weiß nich weiter...
14.08.2024 09:07:40
Oberschlumpf
Hi Tom,

"Der Code von dem Teil ist iO." = ok, ich hatte deine bisherige Erklärung so verstanden, dass nach Auswahl Eintrag (ComboBox) oder Eingabe (TextBox) - immer nur das direkt folgende - Control aktiviert werden soll. Na gut, hab ich dann falsch verstanden.

Und ähh...wieder entschuldigst du dich nur wegen des einen Satzes. Und wann erklärst du uns, was denn dieser Satz nun bedeuten soll?

Unabhängig von all den bisherigen Missverständnissen.
Ich hab leider zu früh "ich versuch mein Glück" geäußert.
Denn schon jetzt, ca 30 Minuten nach meiner letzten Nachricht, muss ich feststellen, dass deine Nöte mit der Datei/Userform/etc leider doch ne Nummer zu groß sind :-/
Das widerum tut mir jetzt leid...aber ich bin leider wieder raus, weil ich wohl doch nicht die Lösung finden kann, die dir helfen würde.

Weiter viel Erfolg!

Ciao
Thorsten
Anzeige
AW: bitte wer anders...ich weiß nich weiter...
14.08.2024 09:22:28
Tom
Ich hab doch den Teil ergänzt und direkt auf den Beitrag geantwortet. Ah ich bin einfach kein Forumsmensch..

Naja trotzdem danke. Zur Not komm ich schon irgendwie zurecht :)
AW: bitte wer anders...ich weiß nich weiter...
14.08.2024 09:32:44
Oberschlumpf
ja, du hast recht!

Ich hatte deine Antwort um 8:42 Uhr mit wirklich besserer Erklärung noch nicht gesehen/gelesen, als ich um 9:07 Uhr erneut um eine Erklärung gebeten hatte.
Dafür ein Sorry von mir! Nich du, sondern ich machte hier was falsch ;-)
Anzeige
AW: bitte wer anders...ich weiß nich weiter...
14.08.2024 10:15:27
Tom
Ja nein alles gut.

Ich muss mich einfach noch bisschen zurecht finden ;) Ich versuch mich in Zukunft genauer auszudrücken :)
AW: Datumprüfung für Textbox läuft zu früh an!
13.08.2024 13:47:18
Onur
Wie sollen wir das denn anhand deiner wagen Beschreibung und einem Stück Code wissen? Man weiss nicht mal, wozu der Code gehört - Textbox1 auf Seite1 oder Textbox1 auf Seite2 ?
Wo ist die Datei?
Anzeige
AW: Datumprüfung für Textbox läuft zu früh an!
13.08.2024 18:23:05
ralf_b
ist es denn sicher das die Meldung von der besagten Textbox kommt? Oder hast du das an einer andern Stelle schon mal als Prüfung hinterlegt?
möglicherweise hast du dir eine ungewollte Kettenreaktion mit den Events geschaffen.


wie wäre eine zusätzliche Prüfung in das Exit Makro einzubauen. Du könntest prüfen ob die übergeordnete Page überhaupt aktiv/sichtbar ist oder irgendwas Anderes, das unbedingt vorher geschehen muß. z.b. prüfen ob die Combobox vorher überhaupt einen Wert erhalten hat.
Anzeige
AW: Datumprüfung für Textbox läuft zu früh an!
14.08.2024 08:42:39
Tom
Also ja ich weiß nicht wo man seinen Beitrag bearbeiten kann drum Antwort ich mal so drauf.

Um den Text nochmal zu vervollständigen damit er auch einen Sinn ergibt.

Ziel:

Eine Userform enthält eine Multipage mit 4 Seiten. In den 4 Seiten sind Textfelder, Comboboxen, OptionButtons und Labels enthalten und teilweise in Frames gesetzt.
CB2 wird aktiv, wenn CB1 einen Wert enthält. Sobald Cb2 einen Wert hat wird ein Textfeld aktiviert. Das funktioniert alles prima.
Doch jetzt passiert etwas was ich nicht ganz begreife. Sobald das Textfeld beschriftet wird werden die restlichen Labels, Textboxen etc aktiviert UND es werden die restlichen Seiten im Multipage aktiviert. Das soll auch so sein.
Auf Seite 2 soll dann die Datumsprüfung erfolgen, aber erst wenn man das Textfeld verlassen. Und es wird schon geprüft wenn ich bei der Auswahl zB Calibration wähle :(

Jetzt ists besser, oder?
Anzeige
AW: Datumprüfung für Textbox läuft zu früh an!
14.08.2024 12:20:44
ralf_b
Es liegt am Tabindex also der Aktivierungsreihenfolge der Controls.
wird die Page aktiviert ist dein Datumsfeld das erste in der Reihe und erhält den Focus. Klickst du nun auf den Optionbutton wandert der Focus und ein Exit event wird ausgelöst. Setzte den Tabindex auf den Frame der Optionbuttons an Stelle 2 oder den Index des Datumsfeldes ans Ende z.b. 9

und diese DatumsPrüfung dürfte ausreichen.
 If Not IsDate(TextBoxDateCali) Then 

die in der Beispieldatei ist Mist weil da Wahr oder Falsch gegen einen Text geprüft wird und keine Datumsangaben verglichen werden.
 If Not TextBoxDateCali.Value = IsDate(Datum) Then
Anzeige
AW: Datumprüfung für Textbox läuft zu früh an!
15.08.2024 08:57:03
Tom
Super und vielen Dank. Das werde ich ausprobieren :) Klingt sogar sehr plausibel :D
Ich gebe sobald ich es ausprobieren kann Rückmeldung. aber ich bin etwas zuversichtlich :)
AW: Datumprüfung für Textbox läuft zu früh an!
15.08.2024 11:30:03
Tom
Also ich hatte das mit der Reihenfolge ausprobiert und es hat leider nichts gebracht.

Ich glaub ich hatte zu kompliziert gedacht, denn die Lösung war einfach als gedacht. Siehe erste Zeile


Private Sub TextBox1_Exit(ByVal Cancel As MSForms.ReturnBoolean)


If TextBox1 = "" Then ' Das war's
Exit Sub

With TextBox1

If Not IsDate(.Text) Then
MsgBox "Date only!"
.SelStart = 0
.SelLength = .TextLength
Cancel = True
End If
End With

End Sub




Danke an alle für die Mühen :)
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