Notions à retenir
- Une fonction VBA commence par FUNCTION et se termine par End Function
- Les fonctions personnalisées apparaissent automatiquement dans la liste des fonctions Excel
- L’utilisation de PUBLIC ou PRIVATE définit la portée de la fonction dans le projet
Pour créer une formule personnalisée dans Visual Basic for Applications (VBA), il faut ouvrir l’éditeur VBA avec ALT+F11 puis insérer un module dans un classeur vierge.
Contrairement aux procédures macro qui utilisent SUB, une fonction personnalisée doit commencer par le mot-clé FUNCTION. Voici la structure de base :
Function Diviser_par_1000(Cellule_a_diviser)
Diviser_par_1000 = Cellule_a_diviser / 1000
End Function
La première ligne définit le nom de la fonction et ses paramètres d’entrée. La variable « Cellule_a_diviser » représente la valeur que recevra la fonction. La deuxième ligne contient la formule de calcul proprement dite. La troisième ligne termine obligatoirement la fonction avec End Function.

Une fois la fonction créée, elle apparaît automatiquement dans la liste des fonctions disponibles d’Excel. Il est alors possible de l’utiliser directement dans une cellule ou via l’assistant fonction, exactement comme les fonctions natives d’Excel.
Pour contrôler la portée de vos fonctions, deux mots-clés peuvent précéder FUNCTION :
- PUBLIC : la fonction est accessible dans tous les modules et procédures du projet
- PRIVATE : la fonction n’est utilisable que dans le module où elle est déclarée
Il est possible de créer des fonctions plus complexes intégrant des conditions, des boucles et des structures de contrôle selon les besoins spécifiques. Ces fonctions peuvent être regroupées dans un module dédié pour constituer une bibliothèque personnalisée.
Pour une réutilisation optimale, ces fonctions peuvent être sauvegardées dans une macro complémentaire (.xlam) et chargées automatiquement au démarrage d’Excel, rendant les fonctions disponibles dans tous les classeurs.