How do you SETFOCUS on TextBox

M

Mike

I have two MODELESS UserForms and I need to have the Textbox1 come up with
the Focus when UserForm2 is Activated. Also, I need to leave UserForm2
Loaded so I just use SHOW and HIDE. The PROBLEM: When UserForm2 is LOADED
(Button1), Textbox1 DOES come up with the Focus. However, after I HIDE it
(Button2) and then reactivate it (Button1), the focus is gone. I can't seem
to find and way of getting the focus back AUTOMATICALLY after the first
Activation.

IN USERFORM1:
Private Sub CommandButton1_Click()
Userform2.Show
Userform2.Top = 300 'just to offset it from UserForm1
End Sub

Private Sub CommandButton2_Click()
Userform2.Hide
End Sub
 
G

Guest

Try using setfocus in the userform_activate on userform2

Private Sub UserForm_Activate()
Me.TextBox1.SetFocus

End Sub
 
M

Mark Ivey

Mike,

Just gave it a quick once over and all worked fine for me (see my code
below). Can you give more detail on what problems you are having?

'My code for UserForm1:
'**********************************
Private Sub CommandButton1_Click()
UserForm2.Show
End Sub

Private Sub UserForm_Activate()
Me.TextBox1.SetFocus
End Sub
'**********************************

'My code for UserForm2:
'**********************************
Private Sub CommandButton1_Click()
UserForm1.Show
End Sub

Private Sub UserForm_Activate()
Me.TextBox1.SetFocus
End Sub
'**********************************
 
M

Mike

Mark,
Your code below doesn't have any HIDE and your buttons are NOT
both in one form. Just copy the code I have below and put all of it in
Userform1 Module. The textbox1 should be in UserForm2.

mike
 
G

Guest

I think it is something to do the modeless nature of the forms.

A solution is to unload the form and reload it every time that you want to
use as follows:

Option Explicit

Private Sub CommandButton1_Click()
UserForm2.Show
UserForm2.Top = 300 'just to offset it from UserForm1
UserForm2.TextBox1.SetFocus
End Sub

Private Sub CommandButton2_Click()
UserForm2.Hide
Unload UserForm2
End Sub
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Top