PC Review


Reply
Thread Tools Rate Thread

SetFocus to first textbox on userform upon Userform1.Show

 
 
=?Utf-8?B?UGF1bCBTaW1vbg==?=
Guest
Posts: n/a
 
      10th Feb 2004
I have Userform1 containing several textboxes. When I first open the Excel file and open the Userform for the first time, the cursor correctly appears in the first textbox (Textbox1). However, if I exit the Userform and then go back in, the cursor appears in another Textbox instead of Textbox1. In fact, each time I exit the Userform and go back in, the cursor is in a different Textbox. (The TabIndex of Textbox1 is set to 0.

I've seen answers to several posts here giving a solution of Userform1.Textbox1.SetFocus. I've put that line in the Private Sub UserForm_Initialize() code, but it has not affect

What code can I use so that whenever I open (show) Userform1, the cursor is always in Textbox1, and where do I place such code

Many thanks
Pau


 
Reply With Quote
 
 
 
 
Bob Phillips
Guest
Posts: n/a
 
      10th Feb 2004
Paul,

It might be because the userform is being hidden, and so when it is next
shown, the Initialize event is to used, that is for when it is loaded into
memory.

Throw your code into the Userform_Activate() event code, and see if that
fixes it.

--

HTH

Bob Phillips
... looking out across Poole Harbour to the Purbecks
(remove nothere from the email address if mailing direct)

"Paul Simon" <(E-Mail Removed)> wrote in message
news:(E-Mail Removed)...
> I have Userform1 containing several textboxes. When I first open the

Excel file and open the Userform for the first time, the cursor correctly
appears in the first textbox (Textbox1). However, if I exit the Userform
and then go back in, the cursor appears in another Textbox instead of
Textbox1. In fact, each time I exit the Userform and go back in, the cursor
is in a different Textbox. (The TabIndex of Textbox1 is set to 0.)
>
> I've seen answers to several posts here giving a solution of

Userform1.Textbox1.SetFocus. I've put that line in the Private Sub
UserForm_Initialize() code, but it has not affect.
>
> What code can I use so that whenever I open (show) Userform1, the cursor

is always in Textbox1, and where do I place such code.
>
> Many thanks,
> Paul
>
>



 
Reply With Quote
 
 
 
 
=?Utf-8?B?UGF1bCBTaW1vbg==?=
Guest
Posts: n/a
 
      11th Feb 2004
Thanks very much Bob. Your first paragraph was the clue to my problem. I changed from Hide to Unload Me, and now it works perfectly. Thanks again, Bob - I appreciate it

Pau

----- Bob Phillips wrote: ----

Paul

It might be because the userform is being hidden, and so when it is nex
shown, the Initialize event is to used, that is for when it is loaded int
memory

Throw your code into the Userform_Activate() event code, and see if tha
fixes it

--

HT

Bob Phillip
... looking out across Poole Harbour to the Purbeck
(remove nothere from the email address if mailing direct

"Paul Simon" <(E-Mail Removed)> wrote in messag
news:(E-Mail Removed)..
> I have Userform1 containing several textboxes. When I first open th

Excel file and open the Userform for the first time, the cursor correctl
appears in the first textbox (Textbox1). However, if I exit the Userfor
and then go back in, the cursor appears in another Textbox instead o
Textbox1. In fact, each time I exit the Userform and go back in, the curso
is in a different Textbox. (The TabIndex of Textbox1 is set to 0.
>> I've seen answers to several posts here giving a solution o

Userform1.Textbox1.SetFocus. I've put that line in the Private Su
UserForm_Initialize() code, but it has not affect
>> What code can I use so that whenever I open (show) Userform1, the curso

is always in Textbox1, and where do I place such code
>> Many thanks

> Pau
>>

 
Reply With Quote
 
Bob Phillips
Guest
Posts: n/a
 
      11th Feb 2004
Paul,

Could I advise you to re-consider. Sometimes, often, it is better to hide a
sheet rather than unload it, thereby removing that load overhead if you
re-load in the same session. You can still achieve your objective using the
Activate event.

Not saying you should, just make sure you are happy which is the best way
for you.

--

HTH

Bob Phillips
... looking out across Poole Harbour to the Purbecks
(remove nothere from the email address if mailing direct)

"Paul Simon" <(E-Mail Removed)> wrote in message
news:(E-Mail Removed)...
> Thanks very much Bob. Your first paragraph was the clue to my problem. I

changed from Hide to Unload Me, and now it works perfectly. Thanks again,
Bob - I appreciate it.
>
> Paul
>



 
Reply With Quote
 
=?Utf-8?B?UGF1bCBTaW1vbg==?=
Guest
Posts: n/a
 
      11th Feb 2004
Hi Bob,

You are absolutely right! If I load and unload the form several times, I eventually run out of memory. In fact, I even reached a point where Excel told me it could not save the file. (And exiting Excel does not regain the memory. You actually have to reboot.)

Thanks very much for great advice, Bob.

Paul




----- Bob Phillips wrote: -----

Paul,

Could I advise you to re-consider. Sometimes, often, it is better to hide a
sheet rather than unload it, thereby removing that load overhead if you
re-load in the same session. You can still achieve your objective using the
Activate event.

Not saying you should, just make sure you are happy which is the best way
for you.

--

HTH

Bob Phillips
... looking out across Poole Harbour to the Purbecks
(remove nothere from the email address if mailing direct)

"Paul Simon" <(E-Mail Removed)> wrote in message
news:(E-Mail Removed)...
> Thanks very much Bob. Your first paragraph was the clue to my problem. I

changed from Hide to Unload Me, and now it works perfectly. Thanks again,
Bob - I appreciate it.
>> Paul

>

 
Reply With Quote
 
Bob Phillips
Guest
Posts: n/a
 
      11th Feb 2004
Paul,

As I think you suspected, it is unloaded at this point.

Good news though, there is a QueryClose event that is invoked whenever the
form is unloaded. There are 4 close circumstances, so you can trap them and
react as you see fit. Here is some code

Private Sub UserForm_QueryClose(Cancel As Integer, CloseMode As Integer)
Select Case CloseMode
Case vbFormControlMenu:
Cancel = True 'The user has chosen the Close command from the
Control menu on the UserForm.
Case vbFormCode:
'The Unload statement is invoked from code.
Case vbAppWindows:
'The current Windows operating environment
session is ending.
Case vbAppTaskManager:
'The Windows Task Manager is closing the
application
End Select

End Sub

In this I have shown all 4 instabces, but the only one that is trated is the
Control Menu close, the X that is, where I cancel the close. So it has no
effect to click the X.

You could action some of the others, but be careful, you might never be able
to close the dang thing.

--

HTH

Bob Phillips
... looking out across Poole Harbour to the Purbecks
(remove nothere from the email address if mailing direct)

"Paul Simon" <(E-Mail Removed)> wrote in message
news:(E-Mail Removed)...
> Hi Bob,
>
> I have a follow-up question. First of all, your suggestion of my putting

my Userform1.Textbox1.SetFocus line in the Userform_Activate event and
changing the code in my Exit button back to Userform1.Hide (instead of
Unload Me) all works perfectly.
>
> What I'm wondering is this: If the user clicks the Close button (the

built-in "x" button at the top right corner of the Userform) instead of my
Exit button, is the Userform being hidden or unloaded? If unloaded, is
there a way to remove the "x" Close button from the Userform?
>
> Many thanks,
> Paul
>
> ----- Paul Simon wrote: -----
>
> Hi Bob,
>
> You are absolutely right! If I load and unload the form several

times, I eventually run out of memory. In fact, I even reached a point
where Excel told me it could not save the file. (And exiting Excel does not
regain the memory. You actually have to reboot.)
>
> Thanks very much for great advice, Bob.
>
> Paul
>
>
>
>
> ----- Bob Phillips wrote: -----
>
> Paul,
>
> Could I advise you to re-consider. Sometimes, often, it is

better to hide a
> sheet rather than unload it, thereby removing that load overhead

if you
> re-load in the same session. You can still achieve your

objective using the
> Activate event.
>
> Not saying you should, just make sure you are happy which is the

best way
> for you.
>
> --
>
> HTH
>
> Bob Phillips
> ... looking out across Poole Harbour to the Purbecks
> (remove nothere from the email address if mailing direct)
>
> "Paul Simon" <(E-Mail Removed)> wrote in

message
> news:(E-Mail Removed)...
> > Thanks very much Bob. Your first paragraph was the clue to my

problem. I
> changed from Hide to Unload Me, and now it works perfectly.

Thanks again,
> Bob - I appreciate it.
> >> Paul

> >



 
Reply With Quote
 
=?Utf-8?B?UGF1bCBTaW1vbg==?=
Guest
Posts: n/a
 
      11th Feb 2004
Bob,

Terrific! Thanks again so very much for all the time and help you've given me on this - it's very much appreciated. And I'll certainly take into account your caution about being careful to avoid not being able to close the form. (I'll do my experimenting on a "Test" file first.)

Many, many thanks,
Paul


----- Bob Phillips wrote: -----

Paul,

As I think you suspected, it is unloaded at this point.

Good news though, there is a QueryClose event that is invoked whenever the
form is unloaded. There are 4 close circumstances, so you can trap them and
react as you see fit. Here is some code

Private Sub UserForm_QueryClose(Cancel As Integer, CloseMode As Integer)
Select Case CloseMode
Case vbFormControlMenu:
Cancel = True 'The user has chosen the Close command from the
Control menu on the UserForm.
Case vbFormCode:
'The Unload statement is invoked from code.
Case vbAppWindows:
'The current Windows operating environment
session is ending.
Case vbAppTaskManager:
'The Windows Task Manager is closing the
application
End Select

End Sub

In this I have shown all 4 instabces, but the only one that is trated is the
Control Menu close, the X that is, where I cancel the close. So it has no
effect to click the X.

You could action some of the others, but be careful, you might never be able
to close the dang thing.

--

HTH

Bob Phillips
... looking out across Poole Harbour to the Purbecks
(remove nothere from the email address if mailing direct)

"Paul Simon" <(E-Mail Removed)> wrote in message
news:(E-Mail Removed)...
> Hi Bob,
>> I have a follow-up question. First of all, your suggestion of my putting

my Userform1.Textbox1.SetFocus line in the Userform_Activate event and
changing the code in my Exit button back to Userform1.Hide (instead of
Unload Me) all works perfectly.
>> What I'm wondering is this: If the user clicks the Close button (the

built-in "x" button at the top right corner of the Userform) instead of my
Exit button, is the Userform being hidden or unloaded? If unloaded, is
there a way to remove the "x" Close button from the Userform?
>> Many thanks,

> Paul
>> ----- Paul Simon wrote: -----
>> Hi Bob,
>> You are absolutely right! If I load and unload the form several

times, I eventually run out of memory. In fact, I even reached a point
where Excel told me it could not save the file. (And exiting Excel does not
regain the memory. You actually have to reboot.)
>> Thanks very much for great advice, Bob.
>> Paul
>>>>> ----- Bob Phillips wrote: -----

>> Paul,
>> Could I advise you to re-consider. Sometimes, often, it is

better to hide a
> sheet rather than unload it, thereby removing that load overhead

if you
> re-load in the same session. You can still achieve your

objective using the
> Activate event.
>> Not saying you should, just make sure you are happy which is the

best way
> for you.
>> --
>> HTH
>> Bob Phillips

> ... looking out across Poole Harbour to the Purbecks
> (remove nothere from the email address if mailing direct)
>> "Paul Simon" <(E-Mail Removed)> wrote in

message
> news:(E-Mail Removed)...
>> Thanks very much Bob. Your first paragraph was the clue to my

problem. I
> changed from Hide to Unload Me, and now it works perfectly.

Thanks again,
> Bob - I appreciate it.
>>> Paul

>>

 
Reply With Quote
 
 
 
Reply

Thread Tools
Rate This Thread
Rate This Thread:

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off
Trackbacks are On
Pingbacks are On
Refbacks are Off


Similar Threads
Thread Thread Starter Forum Replies Last Post
fill userform textbox from userform listbox clik event GregJG Microsoft Excel Programming 1 7th Dec 2008 03:05 PM
UserForm Textbox.setfocus help JMay Microsoft Excel Programming 4 28th Oct 2008 04:00 PM
Trim() not trim(); SetFocus() not setFocus() =?Utf-8?B?UGF1bA==?= Microsoft Access VBA Modules 4 8th Oct 2007 11:23 PM
Must SetFocus! May not SetFocus! =?Utf-8?B?QWxsZW5fTg==?= Microsoft Access VBA Modules 5 13th Jun 2007 11:46 PM
Setfocus won't work on a userform's textbox control =?Utf-8?B?SmFjIFRyZW1ibGF5?= Microsoft Excel Programming 4 29th May 2004 04:06 AM


Features
 

Advertising
 

Newsgroups
 


All times are GMT +1. The time now is 01:16 PM.