Pointeur de fonction

Gne99
Messages postés
6
Date d'inscription
mercredi 15 février 2012
Statut
Membre
Dernière intervention
29 mai 2019
- 29 mai 2019 à 08:56
Patrice33740
Messages postés
8549
Date d'inscription
dimanche 13 juin 2010
Statut
Membre
Dernière intervention
7 mai 2022
- 30 mai 2019 à 23:02
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

NHenry
Messages postés
14931
Date d'inscription
vendredi 14 mars 2003
Statut
Modérateur
Dernière intervention
27 mai 2022
161
29 mai 2019 à 19:37
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.
0
Patrice33740
Messages postés
8549
Date d'inscription
dimanche 13 juin 2010
Statut
Membre
Dernière intervention
7 mai 2022
21
30 mai 2019 à 23:02
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
0