Hallo Frederik,
Post by FrederikVorab vielen Dank für Deinen Vorschlag aber ,,Uff", Du hast am anderen
Ende keinen Profi sondern einen noch dummen Anfänger, welcher just
versucht das Laufen zu erlernen.
Anfänger zu sein ist doch kein Problem, aber bist du deswegen dumm ;-)
Post by FrederikWill Dir mein Vorhaben näher erklären und würde mich freuen wenn Du
mir einen Lösungsvorschlag geben könntest.
1. in der Userform habe ich keinen Buttom sondern eine Listbox mit 2
Auswahlmöglichkeiten
2. Nach erfolgter Anwahl möchte ich einen Dialog mit dem User
aufbauen, wobei bei Wahl 1 (Listindex) der Focus auf textbox1 (tbaa1)
gesetzt wird. Bei Wahl 2 soll Textbox 10 (tbaa10) den Focus erhalten.
das hast du schon realisiert?
Post by Frederik3. Mit Auswahl der Textbox soll jetzt sofort ein Dialog zum User,
mittel Listboxen aufgenommen werden, aus denen wiederum die
entsprechend Textbox gefüllt wird. Der User kann lediglich eine
vorgegebene Auswahl treffen deren Plausibilität nach der letzten
Textbox im gesamten geprüft wird.
ok, wenn ich das richtig verstanden habe, willst du zu einigen TextBoxen
in ein und demselben Label Hilfetexte anzeigen?
Ich dachte, die sollen nur nach dem Hilfeschrei des Users angezeigt werden.
Dazu würde ich nicht, die aktivierte TextBox abfragen, sondern in jeder
TextBox, die einen Hilfetext zur Verfügung hat das Label anpassen.
Speicher die Hilfetexte in einem Standardmodul nach folgendem Schema:
Public Const cstrHilfeTextBox1 As String = _
"Hier kommt jetzt der" & _
vbNewLine & _
"Hilfetext für TextBox1"
Public Const cstrHilfeTextBox2 As String = _
"Hier kommt jetzt der" & _
vbNewLine & _
"Hilfetext für TextBox2"
Ebenfalls in das Standardmodul gehört die ausführende Prozedur.
Ich lagere die Sub deshalb aus, falls noch weitere Befehle dazu kommen,
oder sich irgendwas ändert. Dann muss nur diese eine Prozedur geändert werden
und nicht alle Codes der TextBoxen.
Public Sub WriteHelpText(strText As String)
UserForm1.Label1.Caption = strText
End Sub
Füge für jede TextBox mit Hilfetext folgende Ereignis Prozeduren im
Codemodul der UserForm ein. Passe die richtigen Konstanten mit
dem Hilfetext an deine Konstanten an:
Private Sub TextBox1_Enter()
WriteHelpText cstrHilfeTextBox1
End Sub
Private Sub TextBox1_Exit(ByVal Cancel As MSForms.ReturnBoolean)
WriteHelpText ""
End Sub
Private Sub TextBox2_Enter()
WriteHelpText cstrHilfeTextBox2
End Sub
Private Sub TextBox2_Exit(ByVal Cancel As MSForms.ReturnBoolean)
WriteHelpText ""
End Sub
Sobald eine TextBox den Focus erhält, wird der Text in Label 1 angezeigt.
Beim Verlassen der TextBox wird dieser Text wieder gelöscht, falls als
nächstes eine TextBox ohne Hilfetext aktiviert wird.
Mit freundlichen Grüssen
Melanie Breden
--
- Microsoft MVP für Excel -
www.melanie-breden.de