Lancer une macro depuis un control créé par macro
Bonjour,
Je travaille actuellement sur un fichier qui extrait des informations d'autres fichiers. Mon problème est le suivant: les utilisateurs des fichiers sources aiment changer le noms des feuilles régulièrement.
J'ai donc fait un bout de macro qui ouvre un userform qui propose tous les noms de feuilles du fichier source avec le code ci dessous.
Mon problème est que comme les OptionButton sont créer à l'initialisation je ne sais pas comment déclarer la macro qui correspondrait au OptionButton_Click
SHEET_FORMULAIRE est la feuille qui contient toutes les données des fichiers sources
FORM_NOM_NOMEN est le nolm de la cellule contenant le nom du fichier source
FORM_NOM_FEUILLE_NOMEN est le nom de la cellule censé contenir le nom de la feuille à analyser
Code:
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
| Dim ControlToBeAdded As Control
Dim MySheetCount As Integer
Private Sub Annuler_Click()
Me.Hide
End Sub
Private Sub UserForm_Initialize()
Me.Label1.Caption = "La feuille : " & SHEET_FORMULAIRE.Range(FORM_NOM_FEUILLE_NOMEN) & " n'a pas été trouvée, sélectionnez la feuille désirée :"
' Ajoute les noms de Feuilles
For MySheetCount = 1 To Workbooks(SHEET_FORMULAIRE.Range(FORM_NOM_NOMEN).Value).Worksheets().Count
Set ControlToBeAdded = Me.Controls.Add("Forms.OptionButton.1", Workbooks(SHEET_FORMULAIRE.Range(FORM_NOM_NOMEN).Value).Worksheets(MySheetCount).Name, True)
ControlToBeAdded.Left = 20
ControlToBeAdded.Top = 20 + 15 * MySheetCount
ControlToBeAdded.Caption = Workbooks(SHEET_FORMULAIRE.Range(FORM_NOM_NOMEN).Value).Worksheets(MySheetCount).Name
Next MySheetCount
Me.Annuler.Left = 20
Me.Annuler.Top = 10 + 15 * (MySheetCount + 1)
Me.Annuler.Height = 30
Me.Annuler.Width = 200
Me.Annuler.Caption = "ANNULER"
Me.Height = 70 + 15 * (MySheetCount + 1)
Me.Width = 240
End Sub |
PS : j'ai déjà lu les tutos liés aux userforms et aux control sans trouver mon bonheur.
Quelqu'un peut il m'aider?