Home |
Search |
Today's Posts |
|
#1
![]()
Posted to microsoft.public.excel.programming
|
|||
|
|||
![]()
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 |
#2
![]()
Posted to microsoft.public.excel.programming
|
|||
|
|||
![]()
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 |
#3
![]()
Posted to microsoft.public.excel.programming
|
|||
|
|||
![]() 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 |
#4
![]()
Posted to microsoft.public.excel.programming
|
|||
|
|||
![]()
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 |
#5
![]()
Posted to microsoft.public.excel.programming
|
|||
|
|||
![]()
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 |
#6
![]()
Posted to microsoft.public.excel.programming
|
|||
|
|||
![]()
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 |
Reply |
Thread Tools | Search this Thread |
Display Modes | |
|
|
![]() |
||||
Thread | Forum | |||
OptionButton value | Excel Programming | |||
OptionButton | Excel Programming | |||
OptionButton | Excel Programming | |||
Better Way to Use OptionButton | Excel Programming | |||
Better Way to Use OptionButton | Excel Programming |