Merci,Bonjour
Ci joint ma solution
A+ François
Public WithEvents OB As MSForms.OptionButton
Private Sub OB_Change()
If OB Then MsgBox OB.Caption 'juste pour tester
End Sub
Dim OB() As New Classe1
Sub USF()
Dim i&
With Sheets("Feuil1").[A1].CurrentRegion
For i = 1 To .Rows.Count
ReDim Preserve OB(1 To i)
Set OB(i).OB = UserForm1.Controls.Add("Forms.OptionButton.1")
OB(i).OB.Top = 10 + 20 * (i - 1)
OB(i).OB.Left = 10
OB(i).OB.Height = 12
OB(i).OB.Width = 80
OB(i).OB.Caption = .Cells(i, 1)
Next
End With
UserForm1.Height = 30 + 20 * i
UserForm1.Show
End Sub