Bonjour,
je me suis mis récemment au VBA et je commence à avoir quelques fonctions bien pratiques qui me servent régulièrement dans plusieurs fichiers. Jusqu'ici, à chaque fois que je faisais un nouveau fichier, je reprogrammais tous. Mais je commence à trouver cela fastidieux, et chercher les anciennes fonctions qu'on sait qu'on a programmées, mais qu'on ne sait plus où, n'est pas pratique. C'est pourquoi je me demande s'il ne serait pas possible de mutualiser certaines fonctions usuelles entre tous mes futurs fichiers Excel.
Je n'ai trouvé que cette piste dans la FAQ :
Je pourrais éventuellement regrouper toutes mes fonctions dans un seul fichier et y accéder de cette façon, mais faire appel à des fonctions de cette manière n'est pas terrible pour la lisibilité du code. Je pense qu'il y a certainement moyen de procéder autrement, et c'est pouquoi je fais appel à vous.Peut-on appeler une macro d'un autre classeur ?
Il faut utiliser Run. Cette méthode permet aussi de passer des paramètres. Supposons que mon classeur "calcul.xls" contienne une fonction Log10 telle que :
Il est possible de l'utiliser depuis un autre classeur en faisant Il est possible de l'utiliser depuis un autre classeur en faisant
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4 Public Function Log10(ByVal X As Single) As Single Log10 = Log(X) / Log(10#) End Function
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 Result = Application.Run("calcul.xls!Log10", 1.2)
Je vous remercie par avance.
Partager