ExcelBanter

ExcelBanter (https://www.excelbanter.com/)
-   Excel Programming (https://www.excelbanter.com/excel-programming/)
-   -   Using SetFocus with Frames (https://www.excelbanter.com/excel-programming/411142-using-setfocus-frames.html)

jimec74

Using SetFocus with Frames
 
Hi

I have a UserForm with several text boxes embedded into frames (used only as
a visual aid for grouping the text boxes).

I am using AfterUpdate to validate the user input, eg:

'---------------------------------------
Sub Txt_StartValue_AfterUpdate()

Dim Msg, Title, Response

If IsNumeric(Txt_StartValue.Value) = False Then
Msg = "You must enter a number"
Title = "Non-numeric Value"
Response = MsgBox(Msg,16,Title)
Txt_StartValue.SetFocus
End If

End Sub
'-----------------------------------------

Problem is, when Txt_StartValue is embedded within a Frame, the SetFocus
doesn't work & the next textbox is selected.

Any ideas as to how to get the correct textbox selected via the SetFocus?

Thanks,

James

jimec74

Using SetFocus with Frames
 
It's OK - I solved my own problem with the _Exit(ByVal Cancel ...) event!!
(do a search on "SetFocus")

Thanks anyway to anyone who thought about this.... seems to me like there's
a bug with SetFocus?

James

"jimec74" wrote:

Hi

I have a UserForm with several text boxes embedded into frames (used only as
a visual aid for grouping the text boxes).

I am using AfterUpdate to validate the user input, eg:

'---------------------------------------
Sub Txt_StartValue_AfterUpdate()

Dim Msg, Title, Response

If IsNumeric(Txt_StartValue.Value) = False Then
Msg = "You must enter a number"
Title = "Non-numeric Value"
Response = MsgBox(Msg,16,Title)
Txt_StartValue.SetFocus
End If

End Sub
'-----------------------------------------

Problem is, when Txt_StartValue is embedded within a Frame, the SetFocus
doesn't work & the next textbox is selected.

Any ideas as to how to get the correct textbox selected via the SetFocus?

Thanks,

James


Peter T

Using SetFocus with Frames
 
The reason SetFocus 'apparently' fails to work in the AfterUpdate event is
while that event is being processed focus remains in that textbox. It's only
after the update event has completed focus Exits.

VBA textboxes do not have a purpose made Validate event, like VB6 forms, so
the Exit event is probably what you need. However the Exit event might do
more than you want; if say user is tabbing around controls without changing
anything your Exit event will fire when leaving an unchanged empty textbox.
Depending on your needs you might want to add If Len(the text) 0 then etc.

Regards,
Peter T

"jimec74" wrote in message
...
It's OK - I solved my own problem with the _Exit(ByVal Cancel ...) event!!
(do a search on "SetFocus")

Thanks anyway to anyone who thought about this.... seems to me like

there's
a bug with SetFocus?

James

"jimec74" wrote:

Hi

I have a UserForm with several text boxes embedded into frames (used

only as
a visual aid for grouping the text boxes).

I am using AfterUpdate to validate the user input, eg:

'---------------------------------------
Sub Txt_StartValue_AfterUpdate()

Dim Msg, Title, Response

If IsNumeric(Txt_StartValue.Value) = False Then
Msg = "You must enter a number"
Title = "Non-numeric Value"
Response = MsgBox(Msg,16,Title)
Txt_StartValue.SetFocus
End If

End Sub
'-----------------------------------------

Problem is, when Txt_StartValue is embedded within a Frame, the SetFocus
doesn't work & the next textbox is selected.

Any ideas as to how to get the correct textbox selected via the

SetFocus?

Thanks,

James





All times are GMT +1. The time now is 11:13 AM.

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