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'utilisateurJe 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.
Merci d'avance pour votre aide.
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
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
Partager