Anzeige
Archiv - Navigation
216to220
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
216to220
216to220
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

Probleme mit SetFocus, Aktivierreihenfolge

Probleme mit SetFocus, Aktivierreihenfolge
08.02.2003 14:54:40
Rieke Frerichs
Sorry, wenn ich mich etwas unbeholfen anstelle, aber ich wende mich hier heute zum ersten mal an ein Forum.
Ich habe folgendes Problem:
Für eine Turnierverwaltung brauche ich eine Eingabemaske (UserForm) mit 10 TextBoxen und einem Eingabe(OK)Button. Die Aktivierreihenfolge ist 1 – 10, dann OKButton. Wenn aber bei der Eingabe in TextBox 6 eine bestimmte Bedingung erfüllt ist, soll der Focus direkt auf den OKButton springen, weil keine weiteren Eingaben mehr nötig sind.
Das funktioniert bei mir mit SetFocus aber nur beim Change Ereignis, das ich aber nicht anwenden kann, weil für die Eingabe ein und zweistellige Zahlen in Frage kommen.
Bei AfterUpdate oder Exit spring der Fokus nicht zum Button sondern in das übernächste Feld der Aktivierreihenfolge.
Mach ich da was falsch?

5
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
Re: Probleme mit SetFocus, Aktivierreihenfolge
08.02.2003 15:24:06
GS

Eigentlich solltest Du in jedem der von Dir genannten Ereignisse den Focus mit GewuenschterCommandButton.setFocus auf eben diesen Button setzen können.

Wie sieht der Code denn aus und wie heißt der Button ?

Gruß
GS

Re: Probleme mit SetFocus, Aktivierreihenfolge
08.02.2003 18:09:00
Rieke Frerichs

Danke für die Antwort
Ich habe in die UserForm 4 Textfelder txt1 - txt4 eingerichtet und den Button OK

Hier der Text:

Private Sub cmdOK_Click()
txt1.Text = "": txt2.Text = "": txt3.Text = "": txt4.Text = ""
End Sub
Private Sub txt2_AfterUpdate()
If txt2 = 13 Then cmdOK.SetFocus
End Sub
Private Sub txt1_Exit(ByVal Cancel As MSForms.ReturnBoolean)
If txt1 = 10 Then cmdOK.SetFocus
End Sub


Wenn ich in Feld 2 eine 13 eingebe springt der Focus in Feld 4
Wenn ich in Feld 1 eine 10 eingebe springt der Focus in Feld 3 und nicht auf den Button.
Ist doch unlogisch oder?


Anzeige
Re: Probleme mit SetFocus, Aktivierreihenfolge
08.02.2003 20:18:32
GS

Hallo,
Du musst cmdOK.SetFocus in das ENTER-Ereignis des der "BedingungsTextbox" normalerweise FOLGENDEN Textbox aufnehmen! (Also txt3 und/oder txt4) Dann sollte es funktionieren.

Gruß
GS



Re: Probleme mit SetFocus, Aktivierreihenfolge
08.02.2003 20:41:57
GS

Hallo nochmal, Ergänzung:
Das "und" ist natürlich Unsinn, gemeint ist die Textbox, die in der Aktivierungsreihenfolge (TabIndex) folgt - das kann natürlich nur eine der Textboxen sein. Die Ereignisaktivierung von Excel ist nun mal so - Exit des einen löst bereits Enter des 'normalerweise' folgenden aus - im Exit eingefügter cmdOK.setFocus wird zwar ausgeführt, Enter des folgenden Objektes jedoch sofort danach (vom System) auch!
Gruß
GS





Anzeige
Re: Probleme mit SetFocus, Aktivierreihenfolge
09.02.2003 09:12:47
Rieke Frerichs

Hallo GS!
Danke für deine Bemühungen.
Ich habe das ganze noch mal durchgespielt, aber beide Proceduren ergeben das gleiche Ergebnis.
Der Focus springt in Feld 3 und nicht auf den Button.

Private Sub txt2_Enter()
If txt1 = 3 Then cmdOK.SetFocus
End Sub

ergibt das gleiche Ergebnis wie

Private Sub txt1_Exit(ByVal Cancel As MSForms.ReturnBoolean)
If txt1 = 3 Then cmdOK.SetFocus
End Sub

Gruß
Rieke


Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige