VBA Nom de fonction variable

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

  • Votes
  • Date
  • Date décroissante
  1. Contributeur
    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
    1. 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)