Créer une fonction dans VBA

La création de formules dans Visual Basic est un outil important si l’on souhaite personnaliser son outil ou utiliser dans des procédures des calculs nécessitant une formule non présente dans Excel.
Pour créer une formule dans VBA, ouvrons Visual Basic (par exemple ALT+F11), puis ouvrons un module dans un classeur vierge.

A l’instar des procédures macros, une fonction ne doit pas commencer par SUB mais par FUNCTION. Dans notre exemple, nous choisirons une formule simple qui divisera par 1000 le contenu d’une cellule, ou une saisie de nombres. Le code sera donc le suivant :

Function Diviser_par_1000(Cellule_a_diviser)
Diviser_par_1000 = Cellule_a_diviser / 1000
End Function

La première ligne définit la fonction (ici Cellule_a_diviser sera la variable qui contiendra l’information récupérée par l’assistant des fonctions). La seconde définit la formule de calcul. La troisième termine la fonction. Il est possible d’avoir des formules plus complexes avec des conditions, cela dépendra de vos besoins et de la fonction que vous voudrez créer.

Vous trouverez alors dans la liste des fonctions votre création.

Creation fonction - liste

 

Et vous pourrez l’utiliser directement comme dans l’exemple ci-dessous ou alors sélectionner une cellule.

 

Creation fonction - assistant

 

A noter : 

Devant FUNCTION, il est possible de rajouter deux éléments : PUBLIC ou PRIVATE. Le premier indique que la fonction peut être appelée dans toutes les procédures de tous les modules. Le second que la fonction doit être déclarée dans une procédure pour pouvoir être appelée.

Maintenant que votre fonction est créée, vous pouvez l’utiliser dans votre projet. Il est aussi possible de vous créer dans un module une bibliothèque de fonctions, que vous pourrez enregistrer dans une macro complémentaire et utiliser sur n’importe qu’elle fichier, tant que la macro complémentaire est chargée sur votre logiciel.

Vous trouverez ici en téléchargement le fichier que nous venons de créer pour votre exemple (à noter sur Excel 2007, l’extension d’un fichier avec macro est .xlsm).

Bonne fonction !

 

 

2 réflexions sur “Créer une fonction dans VBA”

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *

Ce site utilise Akismet pour réduire les indésirables. En savoir plus sur comment les données de vos commentaires sont utilisées.