Change properties of a userform

  • Thread starter Thread starter Guest
  • Start date Start date
G

Guest

Hello -
How do you programically change an optionbutton value permenatly. I want
the default value for an option button to be true every time the userform is
ran after the user selects that optionbutton. I thought that you could just
set it to true when it was checked... Like this:

Private Sub OptionButton1_Click()
Me.OptionButton1.Value = True
End Sub

Private Sub OptionButton2_Click()
Me.OptionButton2.Value = True
End Sub

Private Sub OptionButton3_Click()
Me.OptionButton3.Value = True
End Sub

But it always goes back to the one that I set to true in the properties.
It's probably easy, but I can't figure it out (other than storing the
selection on the workbook and referencing it in the initialization event -
pretty sloppy, I know).
 
Option buttons are mutually exclusive.
There is only one of them you can set to TRUE.


Private Sub UserForm_Activate()
Me.OptionButton1.Value = True
End Sub

HTH
 
Hi Mike,

maybe I didn't understand your question, but you don't need to use:
Private Sub OptionButton1_Click()
Me.OptionButton1.Value = True
End Sub
to change the value of optionbutton. It changes automatically,
including unchecking all the other optionbuttons in the same
form/tab/frame.

If you need to set value of the optionbutton before you show the
userform to the user, use something like this:
with userform
..optionbutton1.value=true 'sets the default = checked optionbutton1
..show
end with

Regards,
Ivan
 
Thanks to both of you for answering. I didn't present my question very
clearly. Basically I want the user to select an optionbutton and then for
that optionbutton to still be true the next time the userform runs.
 
I reiterate my solution:

Private Sub UserForm_Activate()
Me.OptionButton1.Value = True
End Sub

HTH
 
I must be missing something. How do I know which one to set to true in the
activate event. If the user checked optionbutton3 the last time the form was
ran, I want optiongbutton3 to be true everytime the form is ran until another
optionbutton is checked.
--
Thanks,
Mike


Ardus Petus said:
I reiterate my solution:

Private Sub UserForm_Activate()
Me.OptionButton1.Value = True
End Sub

HTH
 
You must link each optionbutton to a specific cell via ControlSource
property (eg: Sheet1!A1)

This way, Excel will show the current selected optionbutton when you run
Userform1.Show

HTH
--
AP

Mike Archer said:
I must be missing something. How do I know which one to set to true in the
activate event. If the user checked optionbutton3 the last time the form
was
ran, I want optiongbutton3 to be true everytime the form is ran until
another
optionbutton is checked.
 
Hi Mike

You need to remember the selected options somewhere between the userform
sessions. You could write something to an external textfile, to a hidden
worksheet, or to the registry. The latter selections follows the user, not
the application, so it's the preferred "userfriendly" way to do it. Have a
look at SaveSetting and GetSetting in help for registry entries /readings.

HTH. Best wishes Harald

Mike Archer said:
I must be missing something. How do I know which one to set to true in the
activate event. If the user checked optionbutton3 the last time the form was
ran, I want optiongbutton3 to be true everytime the form is ran until another
optionbutton is checked.
 
PERFECT!!!!!!!!
--
Thanks,
Mike


Harald Staff said:
Hi Mike

You need to remember the selected options somewhere between the userform
sessions. You could write something to an external textfile, to a hidden
worksheet, or to the registry. The latter selections follows the user, not
the application, so it's the preferred "userfriendly" way to do it. Have a
look at SaveSetting and GetSetting in help for registry entries /readings.

HTH. Best wishes Harald
 
You implemented it that fast ? Good work! Thanks for the feedback.

Best wishes Harald
 
Back
Top