Sub fill_range_with_optionbuttons()
'Erik Van Geit
'050520 0138
Dim rownr As Long, i As Integer
Dim counter As Long
Dim rng As Range
Dim txt(2) As String
Dim nm(2) As String
'replace each occurence of 22 by 800
Set rng = Range("A1:B22")
txt(1) = "R"
txt(2) = "V"
nm(1) = "RRR" 'single R or V impossible "R1" is invalid name (= cellreference)
nm(2) = "VVV"
Application.ScreenUpdating = False
Rows("1:22").RowHeight = 18
For rownr = 1 To 22
counter = 0
For i = 1 To 2
counter = counter + 1
Set rng = Cells(rownr, i)
If i = 1 Then
ActiveSheet.GroupBoxes.Add(rng.Left, rng.Top, rng.Width * 2, rng.Height).Name = "box" & rownr
ActiveSheet.Shapes("box" & rownr).OLEFormat.Object.Characters.Text = ""
End If
ActiveSheet.OptionButtons.Add(rng.Left, rng.Top, rng.Width, rng.Height).Name = nm(i) & rownr
With ActiveSheet.Shapes(nm(i) & rownr).OLEFormat.Object
.Characters.Text = txt(i)
.LinkedCell = Cells(rownr, 3).Address
End With
Next i
Next rownr
Application.ScreenUpdating = False
End Sub