Appeller une fonction contenue dans un autre classeur

Je voudrais faire appel depuis le classeurA à une fonction contenue dans un classeurB.

En VBA : Toto = Run("'Classeur B.xls'!MaFonction", Param1, Param2)
Ou alors ajouter une référence vers Classeur B et appeler la fonction directement comme si elle était dans Classeur A : (les deux classeurs doivent être ouverts).
Pour ça il faut d'abord renommer le VBAProject du classeurB (clic droit sur son projet dans l'éditeur puis Propriétés de VBAProject puis donne le nom de ton choix dans la zone Nom du projet, par ex ProjetB).
Ensuite, sélectionne le VBAProject du classeurA en cliquant dessus puis par le menu Outils\Références coche ProjetB dans la liste et OK. Un dossier Références s'ajoute au VBAProjet du classeurA, avec une liaison vers le classeurB. A partir de là tu peux utiliser directement dans le code du classeurA les procédures et fonctions publiques du classeurB.
Supposons une fonction dans un module standard du classeurB :

Function bidon(rez)
 bidon = rez & " : " & rez
 End Function

Après établisement d'une référence vers B, tu peux écrire dans un module standard du classeur A :

sub test()
 MsgBox bidon(25)
 end sub

ou dans une feuille de calcul du classeur A : =bidon(25)

Auteurs : ,

Mots clefs associés à cette page : , , , , ,