Bonjour,

J'ai créé une UserForm qui s'incrémente automatiquement d'un nombre variable d'OptionButton en fonction de valeurs stockées dans une feuille Excel (ici en colonne G). Aucun problème, ça fonctionne. Pour info, cette UserForm comporte également deux CommandButton pour validation et annulation.
En revanche je tourne en rond pour récupérer le contrôle qui est coché par l'utilisateur Je suis certain que c'est bête comme chou, mais je ne suis pas un pro du VBA, soyez donc indulgeants
Voici le code sachant que les variables VHeight et VTop sont publiques.

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
Private Sub UserForm_Initialize()
    Dim obCibles As msforms.OptionButton
    VHeight = 77
    VTop = 10
'   Récupération du n° de ligne de la dernière cellule non vide, colonne G
    DerniereLigneG = ThisWorkbook.Worksheets(2).Range("G" & Rows.Count).End(xlUp).Row
    For i = 6 To DerniereLigneG
'       Paramétrage de la UserForm fmCiblesChoix
        With fmCiblesChoix
            .Height = VHeight
'           Création du bouton d'option
            Set obCibles = .Controls.Add("Forms.OptionButton.1", "obCibles" & i, True)
'           Paramétrages du bouton d'option ajouté
            With obCibles
                .Height = 18
                .Width = 250
                .Top = VTop
                .Left = 12
                .Caption = ThisWorkbook.Worksheets(2).Range("G" & i).Value
            End With
        End With
'       Nouvelles valeurs pour le positionnement des boutons de commande
'       23 = 18 (hauteur obCibles) + 5 (interligne)
        cmdOK.Top = VTop + 23
        cmdAnnuler.Top = VTop + 23
'       Nouvelle hauteur ajustée de la UserForm
        VHeight = VHeight + 23
'       Nouvelle valeur pour le positionnement du nouveau bouton d'option
        VTop = VTop + 23
    Next
End Sub
Merci d'avance pour votre aide.
Bruno

Bonjour,

Après de nouvelles recherches, il se pourrait que ce ne soit pas aussi simple que ça et que la solution puisse se trouver avec l'utilisation d'un module de classe.
Quelqu'un pourrait m'aider à trouver cette solution ? En attendant, je suis en train de bûcher ça.

Bruno