Yes, I did that. The buttons are working within each category, but the "Select All" options are not working. It may be hard to see the sheet in the image I uploaded, but you will see its a little more complicated than just categories A, B &C... I have 3 Spec Package options that (once I fill in all the product options), I would like people to be able to choose either the full A-1 package, the full A-2, or the Upgraded package, AND have the option to choose all of one package, then let's say choose just the flooring from a different package.
I used your VBA formula and tried to adapt it for the extra categories. You will see that I marked the radio button numbers in Blue right above each button. I also have the grouping box numbers marked in Red in column I (each group spans across all 3 packages and I have the lines hidden). I also wasn't sure what to do with CheckBox 17 that you have listed in there, so to test it out, I created a checkbox 17 in cell AC3.
Hopefully you can see all this... Here is how I adapted the VBA code:
Sub CheckAllOptions()
Dim manyButtons As Variant, oneButton As Variant
If ActiveSheet.Shapes("Check Box 17").ControlFormat.Value = xlOn Then
If ActiveSheet.Shapes("Option Button 437").ControlFormat.Value = xlOn Then
manyButtons = oButtons(1)
ElseIf ActiveSheet.Shapes("Option Button 438").ControlFormat.Value = xlOn Then
manyButtons = oButtons(2)
ElseIf ActiveSheet.Shapes("Option Button 439").ControlFormat.Value = xlOn Then
manyButtons = oButtons(3)
Else
Exit Sub
End If
For Each oneButton In manyButtons
oneButton.ControlFormat.Value = xlOn
Next oneButton
Else
ActiveSheet.Shapes(Application.Caller).ControlFormat.Value = False
Beep
End If
End Sub
Sub CheckBox17_Click()
If ActiveSheet.Shapes("Check Box 17").ControlFormat.Value = xlOff Then
ActiveSheet.Shapes("Option Button 437").ControlFormat.Value = xlOff
ActiveSheet.Shapes("Option Button 438").ControlFormat.Value = xlOff
ActiveSheet.Shapes("Option Button 439").ControlFormat.Value = xlOff
End If
End Sub
Function oButtons(index As Long) As Variant
With Sheets("sheet1")
Select Case index
Case 1
oButtons = Array(.Shapes("Option Button 2"), .Shapes("Option Button 3"), .Shapes("Option Button 4"))
Case 2
oButtons = Array(.Shapes("Option Button 6"), .Shapes("Option Button 7"), .Shapes("Option Button 8"))
Case 3
oButtons = Array(.Shapes("Option Button 9"), .Shapes("Option Button 10"), .Shapes("Option Button 11"))
Case 4
oButtons = Array(.Shapes("Option Button 12"), .Shapes("Option Button 13"), .Shapes("Option Button 14"))
Case 5
oButtons = Array(.Shapes("Option Button 15"), .Shapes("Option Button 16"), .Shapes("Option Button 17"))
Case 6
oButtons = Array(.Shapes("Option Button 18"), .Shapes("Option Button 19"), .Shapes("Option Button 20"))
Case 7
oButtons = Array(.Shapes("Option Button 21"), .Shapes("Option Button 22"), .Shapes("Option Button 23"))
Case 8
oButtons = Array(.Shapes("Option Button 24"), .Shapes("Option Button 25"), .Shapes("Option Button 26"))
Case 9
oButtons = Array(.Shapes("Option Button 27"), .Shapes("Option Button 28"), .Shapes("Option Button 29"))
Case 10
oButtons = Array(.Shapes("Option Button 30"), .Shapes("Option Button 31"), .Shapes("Option Button 32"))
Case 11
oButtons = Array(.Shapes("Option Button 33"), .Shapes("Option Button 34"), .Shapes("Option Button 35"))
Case 12
oButtons = Array(.Shapes("Option Button 36"), .Shapes("Option Button 37"), .Shapes("Option Button 38"))
Case 13
oButtons = Array(.Shapes("Option Button 39"), .Shapes("Option Button 40"), .Shapes("Option Button 41"))
Case 14
oButtons = Array(.Shapes("Option Button 42"), .Shapes("Option Button 43"), .Shapes("Option Button 44"))
Case 15
oButtons = Array(.Shapes("Option Button 45"), .Shapes("Option Button 46"), .Shapes("Option Button 47"))
Case 16
oButtons = Array(.Shapes("Option Button 48"), .Shapes("Option Button 49"), .Shapes("Option Button 50"))
Case 17
oButtons = Array(.Shapes("Option Button 51"), .Shapes("Option Button 52"), .Shapes("Option Button 53"))
Case 18
oButtons = Array(.Shapes("Option Button 54"), .Shapes("Option Button 55"), .Shapes("Option Button 56"))
Case 19
oButtons = Array(.Shapes("Option Button 57"), .Shapes("Option Button 58"), .Shapes("Option Button 59"))
Case 20
oButtons = Array(.Shapes("Option Button 60"), .Shapes("Option Button 61"), .Shapes("Option Button 62"))
Case 21
oButtons = Array(.Shapes("Option Button 63"), .Shapes("Option Button 64"), .Shapes("Option Button 65"))
Case 22
oButtons = Array(.Shapes("Option Button 66"), .Shapes("Option Button 67"), .Shapes("Option Button 68"))
Case 23
oButtons = Array(.Shapes("Option Button 69"), .Shapes("Option Button 70"), .Shapes("Option Button 71"))
Case 24
oButtons = Array(.Shapes("Option Button 72"), .Shapes("Option Button 73"), .Shapes("Option Button 74"))
Case 25
oButtons = Array(.Shapes("Option Button 75"), .Shapes("Option Button 76"), .Shapes("Option Button 77"))
Case 26
oButtons = Array(.Shapes("Option Button 78"), .Shapes("Option Button 79"), .Shapes("Option Button 80"))
Case 27
oButtons = Array(.Shapes("Option Button 81"), .Shapes("Option Button 82"), .Shapes("Option Button 83"))
Case 28
oButtons = Array(.Shapes("Option Button 84"), .Shapes("Option Button 85"), .Shapes("Option Button 86"))
Case 29
oButtons = Array(.Shapes("Option Button 87"), .Shapes("Option Button 88"), .Shapes("Option Button 89"))
Case 30
oButtons = Array(.Shapes("Option Button 90"), .Shapes("Option Button 91"), .Shapes("Option Button 92"))
Case 31
oButtons = Array(.Shapes("Option Button 93"), .Shapes("Option Button 94"), .Shapes("Option Button 95"))
Case 32
oButtons = Array(.Shapes("Option Button 96"), .Shapes("Option Button 97"), .Shapes("Option Button 98"))
Case 33
oButtons = Array(.Shapes("Option Button 99"), .Shapes("Option Button 100"), .Shapes("Option Button 101"))
Case 34
oButtons = Array(.Shapes("Option Button 102"), .Shapes("Option Button 103"), .Shapes("Option Button 104"))
Case 35
oButtons = Array(.Shapes("Option Button 105"), .Shapes("Option Button 106"), .Shapes("Option Button 107"))
Case 36
oButtons = Array(.Shapes("Option Button 108"), .Shapes("Option Button 109"), .Shapes("Option Button 110"))
Case 37
oButtons = Array(.Shapes("Option Button 111"), .Shapes("Option Button 112"), .Shapes("Option Button 113"))
Case 38
oButtons = Array(.Shapes("Option Button 114"), .Shapes("Option Button 115"), .Shapes("Option Button 116"))
Case 39
oButtons = Array(.Shapes("Option Button 117"), .Shapes("Option Button 118"), .Shapes("Option Button 119"))
Case 40
oButtons = Array(.Shapes("Option Button 120"), .Shapes("Option Button 121"), .Shapes("Option Button 122"))
Case 41
oButtons = Array(.Shapes("Option Button 123"), .Shapes("Option Button 124"), .Shapes("Option Button 125"))
Case 42
oButtons = Array(.Shapes("Option Button 126"), .Shapes("Option Button 127"), .Shapes("Option Button 128"))
Case 43
oButtons = Array(.Shapes("Option Button 129"), .Shapes("Option Button 130"), .Shapes("Option Button 131"))
Case 44
oButtons = Array(.Shapes("Option Button 132"), .Shapes("Option Button 133"), .Shapes("Option Button 134"))
Case 45
oButtons = Array(.Shapes("Option Button 135"), .Shapes("Option Button 136"), .Shapes("Option Button 137"))
Case 46
oButtons = Array(.Shapes("Option Button 138"), .Shapes("Option Button 139"), .Shapes("Option Button 140"))
Case 47
oButtons = Array(.Shapes("Option Button 141"), .Shapes("Option Button 142"), .Shapes("Option Button 143"))
Case 48
oButtons = Array(.Shapes("Option Button 144"), .Shapes("Option Button 145"), .Shapes("Option Button 146"))
Case 49
oButtons = Array(.Shapes("Option Button 147"), .Shapes("Option Button 148"), .Shapes("Option Button 149"))
Case 50
oButtons = Array(.Shapes("Option Button 150"), .Shapes("Option Button 151"), .Shapes("Option Button 152"))
Case 51
oButtons = Array(.Shapes("Option Button 153"), .Shapes("Option Button 154"), .Shapes("Option Button 155"))
Case 52
oButtons = Array(.Shapes("Option Button 156"), .Shapes("Option Button 157"), .Shapes("Option Button 158"))
Case 53
oButtons = Array(.Shapes("Option Button 159"), .Shapes("Option Button 160"), .Shapes("Option Button 161"))
Case 54
oButtons = Array(.Shapes("Option Button 162"), .Shapes("Option Button 163"), .Shapes("Option Button 164"))
Case 55
oButtons = Array(.Shapes("Option Button 165"), .Shapes("Option Button 166"), .Shapes("Option Button 167"))
Case 56
oButtons = Array(.Shapes("Option Button 168"), .Shapes("Option Button 169"), .Shapes("Option Button 170"))
Case 57
oButtons = Array(.Shapes("Option Button 171"), .Shapes("Option Button 172"), .Shapes("Option Button 173"))
Case 58
oButtons = Array(.Shapes("Option Button 174"), .Shapes("Option Button 175"), .Shapes("Option Button 176"))
Case 59
oButtons = Array(.Shapes("Option Button 177"), .Shapes("Option Button 178"), .Shapes("Option Button 179"))
Case 60
oButtons = Array(.Shapes("Option Button 180"), .Shapes("Option Button 181"), .Shapes("Option Button 182"))
Case 61
oButtons = Array(.Shapes("Option Button 183"), .Shapes("Option Button 184"), .Shapes("Option Button 185"))
Case 62
oButtons = Array(.Shapes("Option Button 186"), .Shapes("Option Button 187"), .Shapes("Option Button 190"))
End Select
End With
End Function