Bonjour le forum,
Merci encore pour cette information, j'aurais pu chercher longtemps...
Je suis très pénible, mais ça ne marche toujours pas. Enfin, presque:
Je veux créer un nouveau bouton dans UserFormEssai et lui faire afficher "coucou" quand on clique dessus.
Je crée le bouton dans la macro (non dans la partie code du userform):
' Create the CommandButton
Set Ctrl = UserFormEssai.Controls.Add("Forms.CommandButton.1")
With Ctrl
.Name = "OKButton"
.Caption = "OK"
End With
Puis je suis vos infos pour créer le code associé (à insérer dans la partie code du userform):
' Create the associated code
Code = "Sub OKButton_Click()" & vbCrLf
Code = Code & "MsgBox ""Coucou XLD""" & vbCrLf
Code = Code & "End Sub"
' Copy the code in the sheet
With ActiveWorkbook.VBProject.VBComponents("UserFormEssai").codeModule
.InsertLines 5, Code ' 5 parce que après "option explicit"
End With
Puis affichage du userform
UserFormEssai.show
Pas de problème à l'éxécution, mais le click sur le boutton OK créé ne fait rien. Sous VBE, quand on fait afficher le code de UserFormEssai, la procédure d'event OKButton_click() y est! Raaah, pourquoi n'est elle pas éxécutée?!
La deuxième solution avec createEventProc :
With ActiveWorkbook.VBProject.VBComponents("UserFormEssai").codeModule
.InsertLines .CreateEventProc("Click", "OKButton") + 1, "MacroMsgBox"
End With
ne marche pas: erreur "gestionnaire d'événements non valide". Est ce à voir avec les objets (createEventProc attend un objet en argument et je lui passe un control)?
Merci à tous qui m'ont déjà répondu et d'avance encore pour la résolution de ce pb. J'ai trop l'impression de toucher au but, c'est frustrant!
Bonne journée à tous. Il fait beau ici
Guillaume