ExcelBanter

ExcelBanter (https://www.excelbanter.com/)
-   Excel Programming (https://www.excelbanter.com/excel-programming/)
-   -   Optionbutton help (https://www.excelbanter.com/excel-programming/346563-optionbutton-help.html)

Craig[_21_]

Optionbutton help
 
HI there,

I have a Userform with some optionbuttons on it. Named optionbutton1 thru 4.
Each button is linked to a worksheet cell. I want, that when I click an
optionbutton it becomes TRUE and the other
optionbuttons become FALSE.
I have these buttons grouped.
What happens is that if optionbutton4 is TRUE and I click optionbutton1...
optionbutton4 becomes FALSE but optionbutton1 doesn't become TRUE unless I
click it again.

How do I make this happen with one click??

Thanks in Advance...Again!
Craig



Patrick Molloy[_2_]

Optionbutton help
 
Make sure that the group is set correctly. What you're asking for is just
standard behaviour. Whatevert option is clicked gets set to TRUE and the rest
get set to false. Also make sure that the option buttons are set to the
correct cells ... they can be pointing at the same cell ... there's no
warnings ... which might give interesting results


"Craig" wrote:

HI there,

I have a Userform with some optionbuttons on it. Named optionbutton1 thru 4.
Each button is linked to a worksheet cell. I want, that when I click an
optionbutton it becomes TRUE and the other
optionbuttons become FALSE.
I have these buttons grouped.
What happens is that if optionbutton4 is TRUE and I click optionbutton1...
optionbutton4 becomes FALSE but optionbutton1 doesn't become TRUE unless I
click it again.

How do I make this happen with one click??

Thanks in Advance...Again!
Craig




davidm

Optionbutton help
 

Craig,

Sometimes we overplay our hands in programming. Do you really nee
"grouping", particularly for a scant number as 4 optionbuttons? If you
buttons are left ungrouped, you will achieve (by default) what you want
Namely, by clicking any one button, the others would be automaticall
set to FASLE.

Regards
David

--
david
-----------------------------------------------------------------------
davidm's Profile: http://www.excelforum.com/member.php...fo&userid=2064
View this thread: http://www.excelforum.com/showthread.php?threadid=48807


Dave Peterson

Optionbutton help
 
I think I'd drop the linked cell (ControlSource) and just assign the values with
code:

Option Explicit
Private Sub OptionButton1_Click()
Call doOpt(1)
End Sub
Private Sub OptionButton2_Click()
Call doOpt(2)
End Sub
Private Sub OptionButton3_Click()
Call doOpt(3)
End Sub
Private Sub OptionButton4_Click()
Call doOpt(4)
End Sub
Sub doOpt(which As Long)
Dim iCtr As Long
With Worksheets("sheet1")
For iCtr = 1 To 4
.Cells(iCtr, "A").Value = CBool(iCtr = which)
Next iCtr
End With
End Sub

I used Sheet1, A1:A4 (to make my life easier), but you could modify it pretty
easily.



Craig wrote:

HI there,

I have a Userform with some optionbuttons on it. Named optionbutton1 thru 4.
Each button is linked to a worksheet cell. I want, that when I click an
optionbutton it becomes TRUE and the other
optionbuttons become FALSE.
I have these buttons grouped.
What happens is that if optionbutton4 is TRUE and I click optionbutton1...
optionbutton4 becomes FALSE but optionbutton1 doesn't become TRUE unless I
click it again.

How do I make this happen with one click??

Thanks in Advance...Again!
Craig


--

Dave Peterson

Craig[_21_]

Optionbutton help
 
Thanks Dave... worked great, my userform has 8 sets of 4 optionbuttons on
it... so I passed a second value to the doOpt procedure and grouped each set
of 4.
I'm really finding that the ControlSource is not very useful... or at least
has cause me a lot of grief lately! It seems to be the root of my problem
everytime... I think I'll avoid it in the future.

Thank for your help again
Crai

"Dave Peterson" wrote in message
...
I think I'd drop the linked cell (ControlSource) and just assign the values
with
code:

Option Explicit
Private Sub OptionButton1_Click()
Call doOpt(1)
End Sub
Private Sub OptionButton2_Click()
Call doOpt(2)
End Sub
Private Sub OptionButton3_Click()
Call doOpt(3)
End Sub
Private Sub OptionButton4_Click()
Call doOpt(4)
End Sub
Sub doOpt(which As Long)
Dim iCtr As Long
With Worksheets("sheet1")
For iCtr = 1 To 4
.Cells(iCtr, "A").Value = CBool(iCtr = which)
Next iCtr
End With
End Sub

I used Sheet1, A1:A4 (to make my life easier), but you could modify it
pretty
easily.



Craig wrote:

HI there,

I have a Userform with some optionbuttons on it. Named optionbutton1 thru
4.
Each button is linked to a worksheet cell. I want, that when I click an
optionbutton it becomes TRUE and the other
optionbuttons become FALSE.
I have these buttons grouped.
What happens is that if optionbutton4 is TRUE and I click
optionbutton1...
optionbutton4 becomes FALSE but optionbutton1 doesn't become TRUE unless
I
click it again.

How do I make this happen with one click??

Thanks in Advance...Again!
Craig


--

Dave Peterson




Dave Peterson

Optionbutton help
 
That seems like a reasonable approach (especially the avoiding portion!).

Craig wrote:

Thanks Dave... worked great, my userform has 8 sets of 4 optionbuttons on
it... so I passed a second value to the doOpt procedure and grouped each set
of 4.
I'm really finding that the ControlSource is not very useful... or at least
has cause me a lot of grief lately! It seems to be the root of my problem
everytime... I think I'll avoid it in the future.

Thank for your help again
Crai

"Dave Peterson" wrote in message
...
I think I'd drop the linked cell (ControlSource) and just assign the values
with
code:

Option Explicit
Private Sub OptionButton1_Click()
Call doOpt(1)
End Sub
Private Sub OptionButton2_Click()
Call doOpt(2)
End Sub
Private Sub OptionButton3_Click()
Call doOpt(3)
End Sub
Private Sub OptionButton4_Click()
Call doOpt(4)
End Sub
Sub doOpt(which As Long)
Dim iCtr As Long
With Worksheets("sheet1")
For iCtr = 1 To 4
.Cells(iCtr, "A").Value = CBool(iCtr = which)
Next iCtr
End With
End Sub

I used Sheet1, A1:A4 (to make my life easier), but you could modify it
pretty
easily.



Craig wrote:

HI there,

I have a Userform with some optionbuttons on it. Named optionbutton1 thru
4.
Each button is linked to a worksheet cell. I want, that when I click an
optionbutton it becomes TRUE and the other
optionbuttons become FALSE.
I have these buttons grouped.
What happens is that if optionbutton4 is TRUE and I click
optionbutton1...
optionbutton4 becomes FALSE but optionbutton1 doesn't become TRUE unless
I
click it again.

How do I make this happen with one click??

Thanks in Advance...Again!
Craig


--

Dave Peterson


--

Dave Peterson


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

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