Private Sub PaarBox_Exit(ByVal Cancel As MSForms.ReturnBoolean)
If PaarBox.ListIndex > 0 Then
SpielerBox1.Value = PaarBox.List(PaarBox.ListIndex, 1)
SpielerBox2.Value = PaarBox.List(PaarBox.ListIndex, 2)
hinButton.SetFocus
End If
End Sub
Aber nach der Abarbeitung hat nicht hinButton(commandbutton1) den Focus sondern Spielerbox2(Combobox3).
Wenn man mit einem Haltepunkt die Abarbeitung unterbricht und dann per Einzelschritt(F8) weitergeht sieht man das folgendes geschieht:
es klappt alles, sobald aber die Abarbeitung an hinbutton.Setfocus kommt fängt die gesamte Sub wieder von vorne an (denke ist korrekt) kommt wieder an hinButton.SetFocus geht darüber hinweg erreicht "End Sub"(bis hier hin hat nichts den Focus), das Userform wird kurz angezeigt (Sekundenbruchteile) danach ist die "End If"- Zeile wieder farblich markiert (ab hier hat hinButton den Focus(schwarzer Rahmen)) geht man dann aber weiter wird "End Sub"wieder erreicht ( bishier her hat hinButton den Focus) lässt man dann den Einzelschritt ausführen wird das UserForm ganz normal angezeigt aber Spielerbox2 hat den Focus.
Dies geschieht aber nur wenn man mit Enter oder Tabstop aus der Combobox rausgeht, klickt man aber mit der Maus auf einen der Commandbuttons oder in eine der beiden andern Comboboxen dann findet dieselbe Abarbeitung statt aber hinButton hat den Focus.
die 6 Elemnte haben folgende Einstellungen
Combobox1 Name=Paarbox TabIndex=0 TabStop=True
Combobox2 Name=Spielerbox1 TabIndex=1 TabStop=True
Combobox3 Name=Spielerbox2 TabIndex=2 TabStop=True
Commandbutton Name=hinbutton TabIndex=3 Tabstop=True
Commandbutton Name=endebutton TabIndex=4 Tabstop=True
Commandbutton Name=abbutton TabIndex=5 Tabstop=True
Kann mir einer Sagen woran das liegt, und/oder mir eine Lösung anbieten.
Danke Niki
Die Datei https://www.herber.de/bbs/user/47685.xls wurde aus Datenschutzgründen gelöscht
Dim Dlauf As Boolean
Private Sub PaarBox_Exit(ByVal Cancel As MSForms.ReturnBoolean)
If Dlauf = True Then
hinButton.SetFocus
Exit Sub
End If
If PaarBox.ListIndex > 0 Then
Dlauf = True
SpielerBox1.Value = PaarBox.List(PaarBox.ListIndex, 1)
SpielerBox2.Value = PaarBox.List(PaarBox.ListIndex, 2)
hinButton.SetFocus
End If
End Sub
Gruss
Tino
Die Datei https://www.herber.de/bbs/user/47686.xls wurde aus Datenschutzgründen gelöscht
Dim dtime As Single
Private Sub PaarBox_Exit(ByVal Cancel As MSForms.ReturnBoolean)
If PaarBox.ListIndex >= 0 Then 'Team ist hinterlegt
SpielerBox1.Value = PaarBox.List(PaarBox.ListIndex, 1)
SpielerBox2.Value = PaarBox.List(PaarBox.ListIndex, 2)
hinButton.SetFocus
dtime = Timer
End If
End Sub
Private Sub SpielerBox2_Enter()
If ((Timer - dtime) <= 0.05) Then hinButton.SetFocus 'es sind weniger als 0,05 Sekunden _
vergangen seit die Paarbox den Focus verloren hat und die "if"-Abfrage abgearbeitet wurde
End Sub
Gruß Niki