VBA Nom de fonction variable

StagiaireVBA -  
Polux31 Messages postés 7219 Statut Membre -
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

  1. eriiic Messages postés 24581 Date d'inscription   Statut Contributeur Dernière intervention   7 281
     
    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
  2. Polux31 Messages postés 7219 Statut Membre 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