Microsoft Excel

Herbers Excel/VBA-Archiv

Informationen und Beispiele zum Thema MsgBox
BildScreenshot zu MsgBox MsgBox-Seite mit Beispielarbeitsmappe aufrufen
Informationen und Beispiele zum Thema Userform
BildScreenshot zu Userform Userform-Seite mit Beispielarbeitsmappe aufrufen
Informationen und Beispiele zum Thema Image
BildScreenshot zu Image Image-Seite mit Beispielarbeitsmappe aufrufen
Informationen und Beispiele zum Thema Label
BildScreenshot zu Label Label-Seite mit Beispielarbeitsmappe aufrufen
Informationen und Beispiele zum Thema SpinButton
BildScreenshot zu SpinButton SpinButton-Seite mit Beispielarbeitsmappe aufrufen
Informationen und Beispiele zum Thema TextBox
BildScreenshot zu TextBox TextBox-Seite mit Beispielarbeitsmappe aufrufen

TabStop bzw SetFocus Problem | Herbers Excel-Forum


Betrifft: TabStop bzw SetFocus Problem von: Michael
Geschrieben am: 30.01.2012 11:10:35

Hallo miteinander,

ich habe ein Problem in meiner Userform und zwar wenn ich eine texbox6 verlasse wird geprüft ob in textbox5 und textbox6 einträge vorhanden sind und die differenz nicht größere 1 ist. Ist dies erfüllt sollen die textboxen1-4 auf vibible=true gesetzt werden.
Das ganze funktioniert soweit auch ganz gut. Das Problem ist nur, dass ich gerne bei weiterschalten aus der Texbox6 mit der Tab-Taste die Textbox5 als focus hätte.
Leider überspringt die Userform die TabIndex der Textboxen 1-4.

Kann mir bitte hier jemand weiterhelfen?

Code:


Private Sub TextBox6_AfterUpdate()
'On Error GoTo Errorhandler:
If TextBox6.Value <> "" Then
Worksheets("User_Data").Range("B7") = CInt(TextBox6.Value)
Label12.Caption = "(" & Format(Worksheets("User_Data").Range("I43"), "0") & " " & "-" & " " &    _
 _
_
_
Format(Worksheets("User_Data").Range("J43"), "0") & ")"
If TextBox6.Value <= SpinButton2.Max And TextBox6.Value >= SpinButton2.Min Then
SpinButton2.Value = TextBox6.Value
Else
SpinButton1.Value = 1
End If
'aktualisiert grenzwerte der spinbuttons
SpBueinlesen
End If

'Überprüft ob Textbox 5 u. 6 voll sind
If TextBox5.Value <> "" And TextBox6.Value <> "" Then
If CInt(TextBox5) + CInt(1) < CInt(TextBox6) Or CInt(TextBox5) - CInt(1) > CInt(TextBox6) Then
MsgBox "Difference of passage numbers too high (max. +/- 1)", , "Attention" 'ACHTUNG Text muss   _
 _
 _
_
auch bei Textbox5 u. 6 geändert werden

' Schaltet textbox1-4 auf grau
For i = 1 To 4
With Controls("TextBox" & i)
.Enabled = False
.BackColor = &H8000000B
End With
Next i
' Schaltet Combobox2-5 auf grau
For j = 2 To 5
With Controls("Combobox" & j)
.Enabled = False
.BackColor = &H8000000B
End With
Next j

'Blendet Image1 u. 3 aus
For x = 1 To 3
With Controls("Image" & x)
.Visible = False
End With
Next x

Else
' Schaltet textbox1-4 auf weiß und aktiviert
For i = 1 To 4
With Controls("TextBox" & i)
.Enabled = True
.BackColor = &H80000005
End With
Next i
' Schaltet Combobox2-5 auf weiß und aktiviert
For j = 2 To 5
With Controls("Combobox" & j)
.Enabled = True
.BackColor = &H80000005
End With
Next j

'Schaltet Spinbuttons auf enabled
For l = 3 To 6
With Controls("Spinbutton" & l)
.Enabled = True
End With
Next l

End If
End If

Exit Sub

Errorhandler:
Fehler         'Springt in Modul1 zur Sub Fehler()
End Sub

  

Betrifft: Wer soll das nachbilden ? Bitte Beispieldatei... von: NoNet
Geschrieben am: 30.01.2012 12:04:54

Hallo Michael,

mir persönlich ist das (zumal am "frühen Montagmorgen" ;-) ehrlich gesagt zu aufwändig, dieses Beispiel nachzubilden.
Ich vermute mal, die meisten anderen Helfer haben ebenfalls wenig Muse, das zu tun !
Daher mein Tipp : erstelle eine kleine Beispieldatei und hänge diese an den Thread an, das erhöht Deine Chancen auf Hilfe im Forum gewaltig...

Meint zumindest NoNet...


  

Betrifft: AW: Wer soll das nachbilden ? Bitte Beispieldatei... von: Michael
Geschrieben am: 30.01.2012 13:04:30

Hmm ich denke das Problem ist relativ einfach zu verstehen. Vielleicht habe ich mich nur etwas kompliziert ausgedrückt.
Ich schalte mit der After Update Prozedur der textbox 5 die textbox1-4 auf visible=true. Anschließend möchte ich das der Cursor in der Textbox1 steht.
Weil ich jedoch die Textbox5 mit der Tabtaste verlasse, lande ich direkt in der textbox die im TabIndex hinter der Textbox4 steht.
Meine Vermutung ist, dass der Focus übergeben wird bevor die textboxen 1-4 auf visible=true stehen und sie deshalb übersprungen werden.
Ich hoffe jetzt ist es verständlicher!

Gruß Michael


  

Betrifft: AW: Wer soll das nachbilden ? Bitte Beispieldatei... von: Michael
Geschrieben am: 30.01.2012 13:35:00

Hallo,

Anbei noch eine Beispiel-Datei.
Füllt man die Oberste textbox mit einem eintrag und drückt dann die Tabtaste werden die 4 weiteren Textboxen aktiviert allerdings ist der Fokus auf dem Commandbutton und nicht wie gewünscht in der 2ten textbox.

Beispiel-Datei:
https://www.herber.de/bbs/user/78651.xls


Gruße


  

Betrifft: AW: TabStop bzw SetFocus Problem von: Michael
Geschrieben am: 30.01.2012 13:38:07

Hallo,

Anbei noch eine Beispiel-Datei.
Füllt man die Oberste textbox mit einem eintrag und drückt dann die Tabtaste werden die 4 weiteren Textboxen aktiviert allerdings ist der Fokus auf dem Commandbutton und nicht wie gewünscht in der 2ten textbox.

Beispiel-Datei:
https://www.herber.de/bbs/user/78651.xls


Gruße


Beiträge aus den Excel-Beispielen zum Thema "TabStop bzw SetFocus Problem"