Pointeur de fonction

Signaler
Messages postés
6
Date d'inscription
mercredi 15 février 2012
Statut
Membre
Dernière intervention
29 mai 2019
-
Patrice33740
Messages postés
7961
Date d'inscription
dimanche 13 juin 2010
Statut
Membre
Dernière intervention
23 février 2020
-
Bonjour,

j'ai besoin de votre aide.
Je voudrais faire un appel de fonction mais je ne vois pas quelle synthaxe utiliser, je m'explique avec un bout de code :

Select Case Range("Metriques")
    
    Case "Vol"
    
        function = getVol2   '<= nom de la fonction qu'il faut en mémoire dans le cas ou dans une case j'ai "Vol"
        
  Case "Tracking"

        function = getTE '<= nom de la fonction qu'il faut en mémoire dans le cas ou dans une case j'ai "Tracking"

End Select

Do While Date_Fin2 <= Range("Date_Fin")

Range("T_Metriques").Cells(1 + r, N_col_Valeurs) = Function(Range("N_Fonds"), Date_Fin2) '<= appel de la fonction que j'avais en mémoire avec les arguments.

Loop


Merci pour votre aide
--

2 réponses

Messages postés
14654
Date d'inscription
vendredi 14 mars 2003
Statut
Modérateur
Dernière intervention
22 février 2020
139
Cela n'est pas possible en VBA (ou du moins pas facilement) et c'est surtout sale.

Il vaut mieux mémoriser une variable (par exemple un numérique) puis appeler la bonne fonction ensuite (case 1 -> getVol2, ...) avec les paramètres.
Messages postés
7961
Date d'inscription
dimanche 13 juin 2010
Statut
Membre
Dernière intervention
23 février 2020
16
Bonjour

Si tu parles d'une fonction personnalisée utilisable depuis une cellule, elle ne peut pas agir sur d'autres cellules, elle ne peut que retourner un résultat vers cette cellule.

Si tu parles d'une fonction appelée depuis une procédure (sub), il suffit , comme dit NHenry, de transmettre à cette fonction tous les paramètres nécessaires.

Tu trouveras toutes les explications dans cet excellent cours gratuit, à partir de la page 29 :
ftp://ftp-developpez.com/bidou/Cours/VBA/formationVBA.pdf