VBA Nom de fonction variable

Fermé
StagiaireVBA - 7 oct. 2010 à 14:25
Polux31 Messages postés 6917 Date d'inscription mardi 25 septembre 2007 Statut Membre Dernière intervention 1 novembre 2016 - 8 oct. 2010 à 08:06
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 24584 Date d'inscription mardi 11 septembre 2007 Statut Contributeur Dernière intervention 18 juin 2024 7 225
8 oct. 2010 à 07:55
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 mardi 25 septembre 2007 Statut Membre Dernière intervention 1 novembre 2016 1 204
8 oct. 2010 à 08:06
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