Appeler procédure à partir d'un nom variable
Résolu
TonyLucky
-
pijaku Messages postés 13513 Date d'inscription Statut Modérateur Dernière intervention -
pijaku Messages postés 13513 Date d'inscription Statut Modérateur Dernière intervention -
Bonjour à tous,
Je sèche... et sollicite votre aide !
Dans un UF, j'ai plusieurs toogle buttons. A l'ouverture du UF, je veux que les TB se mettent à jour en fonction de leur valeur, stockée dans un onglet.
a) je récupère la valeur. OK
b) j'ai créé une variable reprenant le nom de la procédure à lancer (NomSub) :
Private Sub TBut_1_Click (de 1 à 5)
c) je lance la procédure. Avec Call, j'ai le message "sub, function ou property attendue". Avec Run, j'ai le message "impossible de trouver la macro" + le nom, qui est correct
Voici mon code :
Si quelqu'un à une idée, d'avance merci.
Tony
EDITT: ajout de la coloration syntaxique
Je sèche... et sollicite votre aide !
Dans un UF, j'ai plusieurs toogle buttons. A l'ouverture du UF, je veux que les TB se mettent à jour en fonction de leur valeur, stockée dans un onglet.
a) je récupère la valeur. OK
b) j'ai créé une variable reprenant le nom de la procédure à lancer (NomSub) :
Private Sub TBut_1_Click (de 1 à 5)
c) je lance la procédure. Avec Call, j'ai le message "sub, function ou property attendue". Avec Run, j'ai le message "impossible de trouver la macro" + le nom, qui est correct
Voici mon code :
Private Sub UserForm_Initialize()
Dim NomSub As String
With Sheets("Info_User")
For i = 1 To 5
Me.Controls("TBut_" & i).Value = .Range("N" & i + 31)
NomSub = "TBut_" & i & "_Click"
Call NomSub
Next i
End With
end sub
Si quelqu'un à une idée, d'avance merci.
Tony
EDITT: ajout de la coloration syntaxique
2 réponses
-
Bonjour,
Je ne comprends pas bien l'utilité, mais, remplace :Call NomSub
par :CallByName Me, NomSub, VbMethod
Ensuite, tesPrivate Sub TBut_X_Click()
doivent être déclarées au niveau Module, donc supprime les Private...
Private Sub TBut_1_Click()
devient :Sub TBut_1_Click()
-
Bonjour,
Merci de m'avoir répondu et pardon de mon retard, mais j'étais en déplacement.
Ta solution fonctionne parfaitement. Donc, deux fois merci ! J'avais essayé le callbyname, mais en gardant private sub, ce qui, bien évidemment, ne fonctionnait pas...
Pour répondre à ta question sur l'utilité : cela me permet de déclencher des évènements d'affichage liés à la valeur du toogle à l'initialisation du UF.
Bonne journée,
Tony