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 8556 Date d'inscription dimanche 13 juin 2010 Statut Membre Dernière intervention 2 mars 2023 - 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 15113 Date d'inscription vendredi 14 mars 2003 Statut Modérateur Dernière intervention 22 avril 2024 159
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 8556 Date d'inscription dimanche 13 juin 2010 Statut Membre Dernière intervention 2 mars 2023 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
Rejoignez-nous