![]() |
Tab Order Problem
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 |
Tab Order Problem
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 -- Regards, Tom Ogilvy "Minitman" wrote in message ... 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 |
Tab Order Problem
Hey Tom,
I just tried 1 of these subs and after DIMing the 2 variables (tIdex and ctrl), it works great. Thanks. -Minitman On Sun, 24 Oct 2004 19:42:46 -0400, "Tom Ogilvy" wrote: 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 |
Tab Order Problem
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. -- Regards, Tom Ogilvy "Minitman" wrote in message ... Hey Tom, I just tried 1 of these subs and after DIMing the 2 variables (tIdex and ctrl), it works great. Thanks. -Minitman On Sun, 24 Oct 2004 19:42:46 -0400, "Tom Ogilvy" wrote: 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 |
Tab Order Problem
I Do and I did. <G
-Minitman On Mon, 25 Oct 2004 09:22:50 -0400, "Tom Ogilvy" wrote: 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. |
All times are GMT +1. The time now is 10:55 PM. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
ExcelBanter.com