ExcelBanter

ExcelBanter (https://www.excelbanter.com/)
-   Excel Programming (https://www.excelbanter.com/excel-programming/)
-   -   Userform setfocus problem (https://www.excelbanter.com/excel-programming/316300-userform-setfocus-problem.html)

Martin Hibberd[_2_]

Userform setfocus problem
 
I have a simple form with 3 text boxes(txtBadge,txtCount,txtRet) and 1
button. I want to enter data in txtbadge, do some checking, update a counter
txtCount and return the focus to txtbadge so that the next value can be
entered. The problem is that when the AfterUpdate sub ends, the focus goes to
txtRet textbox - I want it t stay in txtBadge. The code below works OK until
the End Sub is executed. Any ideas would be welcome......

Private Sub bnExit_Click()
Unload fmReturnUsed
End Sub

Private Sub txtBadge_AfterUpdate()
txtRet.Value = "RETURNED"
txtCount.Value = Val(txtCount.Value) + 1
txtBadge.SelStart = 0
txtBadge.SelLength = Len(txtBadge.Value)
txtBadge.SetFocus
End Sub

Regards
Martin

Tom Ogilvy

Userform setfocus problem
 
Private Sub bnExit_Click()
Unload fmReturnUsed
End Sub

Private Sub txtBadge_AfterUpdate()
txtRet.Value = "RETURNED"
txtCount.Value = Val(txtCount.Value) + 1
End Sub


Private Sub txtBadge_Exit(ByVal Cancel As MSForms.ReturnBoolean)
txtBadge.SelStart = 0
txtBadge.SelLength = Len(txtBadge.Value)
If Len(txtBadge.Text) < 0 Then
Cancel = True
End If
End Sub

You can't select the bnExit button if Cancel is set to True in the Exit
events, so I don't set it to true if the textbox is empty. You may want to
play with it to perform some other behavior.
--
Regards,
Tom Ogilvy


"Martin Hibberd" wrote in message
...
I have a simple form with 3 text boxes(txtBadge,txtCount,txtRet) and 1
button. I want to enter data in txtbadge, do some checking, update a

counter
txtCount and return the focus to txtbadge so that the next value can be
entered. The problem is that when the AfterUpdate sub ends, the focus goes

to
txtRet textbox - I want it t stay in txtBadge. The code below works OK

until
the End Sub is executed. Any ideas would be welcome......

Private Sub bnExit_Click()
Unload fmReturnUsed
End Sub

Private Sub txtBadge_AfterUpdate()
txtRet.Value = "RETURNED"
txtCount.Value = Val(txtCount.Value) + 1
txtBadge.SelStart = 0
txtBadge.SelLength = Len(txtBadge.Value)
txtBadge.SetFocus
End Sub

Regards
Martin





All times are GMT +1. The time now is 07:31 AM.

Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
ExcelBanter.com