Appeler procédure à partir d'un nom variable

[Résolu/Fermé]
Signaler
-
Messages postés
12257
Date d'inscription
jeudi 15 mai 2008
Statut
Modérateur
Dernière intervention
3 septembre 2021
-
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 :
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

Messages postés
12257
Date d'inscription
jeudi 15 mai 2008
Statut
Modérateur
Dernière intervention
3 septembre 2021
2 654
Bonjour,

Je ne comprends pas bien l'utilité, mais, remplace :
Call NomSub

par :
CallByName Me, NomSub, VbMethod 


Ensuite, tes
Private 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
Messages postés
12257
Date d'inscription
jeudi 15 mai 2008
Statut
Modérateur
Dernière intervention
3 septembre 2021
2 654
Pas de souci.
Et... de rien.
Bonne continuation, n'hésite pas.
@++