Tab Order Problem

  • Thread starter Thread starter Minitman
  • Start date Start date
M

Minitman

Greetings,

I have a UserForm with 14 TextBoxes (TB1 - TB14) and 1 CheckBox
(CBX1). The tab order is: TB1, TB2, TB3, TB4, TB5, TB6, CBX1, TB7,
TB8, TB9, TB10, TB11, TB12, TB13, TB14. I can use the Enter key to
get to CBX1 and then I can't get any further (the tab key does work
but I would rather not). Is there something different about the
CheckBox that wont allow the Enter key to advance the focus to the
next TextBox?

Any ideas on how to get this to work?

TIA

-Minitman
 
I guess that is because the typical interaction with a checkbox is not using
the enter key. You can manage it in code:

Private Sub CheckBox1_KeyDown(ByVal KeyCode As _
MSForms.ReturnInteger, ByVal Shift As Integer)
If KeyCode = 13 Then
tIdex = CheckBox1.TabIndex + 1
If tIdex >= Me.Controls.Count Then
tIdex = 0
End If
For Each ctrl In Me.Controls
If ctrl.TabIndex = tIdex Then
ctrl.SetFocus
Exit For
End If
Next
End If
End Sub

Private Sub CheckBox2_KeyDown(ByVal KeyCode As _
MSForms.ReturnInteger, ByVal Shift As Integer)
If KeyCode = 13 Then
tIdex = CheckBox2.TabIndex + 1
If tIdex >= Me.Controls.Count Then
tIdex = 0
End If
For Each ctrl In Me.Controls
If ctrl.TabIndex = tIdex Then
ctrl.SetFocus
Exit For
End If
Next
End If
End Sub

Private Sub CheckBox3_KeyDown(ByVal KeyCode As _
MSForms.ReturnInteger, ByVal Shift As Integer)
If KeyCode = 13 Then
tIdex = CheckBox3.TabIndex + 1
If tIdex >= Me.Controls.Count Then
tIdex = 0
End If
For Each ctrl In Me.Controls
If ctrl.TabIndex = tIdex Then
ctrl.SetFocus
Exit For
End If
Next
End If
End Sub
 
Hey Tom,

I just tried 1 of these subs and after DIMing the 2 variables (tIdex
and ctrl), it works great.

Thanks.

-Minitman
 
Depends on whether you have option explicit or not. If not, works great
without dimming, but it is usually better to have it and dim them.
 
Back
Top