VBA Nom de fonction variable

StagiaireVBA -  
Polux31 Messages postés 6917 Date d'inscription   Statut Membre Dernière intervention   -
Bonjour,

Est ce qu'il est possible d'appeler une fonction dont une partie du nom est variable?

mes fonctions ont des noms du type

ObCollecte_Click()
ObConquete_Click() ...

Et je voudrait, appeler la fonction Ob(MaVariable)_Click() ca m'éviterait des dizaines de boucle if du type

If MaVariable = Collecte then call ObCollecte_Click()
If MaVariable = Conquete then call ObConquete_Click()

sachant que ma variable peut prendre aproximativement 30 valeurs différentes...!

Si quelqu'un a une idée je suis preneuse!

Merci d'avance.



2 réponses

eriiic Messages postés 24603 Date d'inscription   Statut Contributeur Dernière intervention   7 275
 
Bonjour,

Est ce qu'il est possible d'appeler une fonction dont une partie du nom est variable?
non

Par contre si le code de ObCollecte_Click() et ObConquete_Click() est à peu près identique tu peux appeler une macro commune en lui passant une variable.

sub ObCollecte_Click()
  commun 1
end sub

sub ObConquete_Click()
  commun 2
end sub

sub commun(typ)
  ...
  if typ=1 then
     ...
  elseif typ=2 then
    ...
  endif
  ...
end sub


et à la place de :
If MaVariable = Collecte then call ObCollecte_Click()

mettre :
commun 1


eric
0
Polux31 Messages postés 6917 Date d'inscription   Statut Membre Dernière intervention   1 204
 
Bonjour,

Je confirme la réponse d'Eric. Il n'est pas possible d'avoir un nom de fonction ou procédure variable.

En complément de la proposition, on peut utiliser un Select ... Case

Select maVariable
     Case 1
           Call ObCollecte_Click() 
     Case 2
           Call ObConquete_Click() 
End Select


;o)
0