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