Reply
 
LinkBack Thread Tools Search this Thread Display Modes
  #1   Report Post  
Posted to microsoft.public.excel.programming
external usenet poster
 
Posts: 1,814
Default Detect Option Group Value in VBA

I have a set of three option buttons (from the control toolbox) called
"MyGroup" that I would like to detect which of the three is true in VBA and I
cannot figure out how to refer to the group in VBA. Is there a way to detect
the value of the group or do I have to cycle through each option button
individually using if statements or select case statements?

Thanks for your help.

Steve
  #2   Report Post  
Posted to microsoft.public.excel.programming
external usenet poster
 
Posts: 449
Default Detect Option Group Value in VBA

Hi Steve

The optionbuttons, not the group, contains the value. So loop, like:

If optionbutton1.value = True then
'xxx
elseif optionbutton2.value = true then
'yyy
elseif 'and so on


I think it's better is to assign the result at the time a button is clicked,
like:

Dim GroupValue1 As Long

Private Sub OptionButton1_Click()
If OptionButton1.Value = True Then GroupValue1 = 1
End Sub

Private Sub OptionButton2_Click()
If OptionButton2.Value = True Then GroupValue1 = 2
End Sub

HTH. Best wishes Harald

"Steve" wrote in message
...
I have a set of three option buttons (from the control toolbox) called
"MyGroup" that I would like to detect which of the three is true in VBA
and I
cannot figure out how to refer to the group in VBA. Is there a way to
detect
the value of the group or do I have to cycle through each option button
individually using if statements or select case statements?

Thanks for your help.

Steve


  #3   Report Post  
Posted to microsoft.public.excel.programming
external usenet poster
 
Posts: 7,247
Default Detect Option Group Value in VBA


Try a function like the following:

Function SelectedButtonFromGroup(WS As Worksheet, _
GroupName As String) As MSForms.OptionButton

Dim OleObj As OLEObject
Dim OPT As MSForms.OptionButton

For Each OleObj In WS.OLEObjects
If TypeOf OleObj.Object Is MSForms.OptionButton Then
Set OPT = OleObj.Object
If StrComp(OPT.GroupName, GroupName, vbTextCompare) = 0 Then
If OPT.Value < 0 Then
Set SelectedButtonFromGroup = OPT
Exit Function
End If
End If
End If
Next OleObj
End Function


You pass in the Worksheet and GroupName and it will return the
OptionButton object that is selected in the specified group. You can
then call this function from your code with something like

Dim SelOpt As MSForms.OptionButton
Set SelOpt = SelectedButtonFromGroup( _
Worksheets("Sheet1"), "Group1")
If SelOpt Is Nothing Then
Debug.Print "none checked or GroupName is invalid."
Else
Debug.Print "Opt Button '" & SelOpt.Caption & "' is checked"
End If

Cordially,
Chip Pearson
Microsoft Most Valuable Professional
Excel Product Group, 1998 - 2009
Pearson Software Consulting, LLC
www.cpearson.com
(email on web site)





On Sat, 11 Apr 2009 18:05:01 -0700, Steve
wrote:

I have a set of three option buttons (from the control toolbox) called
"MyGroup" that I would like to detect which of the three is true in VBA and I
cannot figure out how to refer to the group in VBA. Is there a way to detect
the value of the group or do I have to cycle through each option button
individually using if statements or select case statements?

Thanks for your help.

Steve

Reply
Thread Tools Search this Thread
Search this Thread:

Advanced Search
Display Modes

Posting Rules

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


Similar Threads
Thread Thread Starter Forum Replies Last Post
Detect if a cell is within a group cw Excel Programming 3 May 11th 07 07:46 PM
need help on how to grey out one option button in one group box based on the selection of another option button in another group box George Excel Programming 12 March 11th 07 02:08 PM
how to detect change of calculation-option Joerg Lensing Excel Programming 1 November 9th 06 02:30 PM
Option buttons: How to get the selected option from a group? naddad Excel Programming 5 December 21st 05 05:09 PM
Detect Group mode Tim Aurthur Excel Programming 3 October 22nd 03 06:17 PM


All times are GMT +1. The time now is 03:39 PM.

Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Copyright ©2004-2025 ExcelBanter.
The comments are property of their posters.
 

About Us

"It's about Microsoft Excel"