C'est quoi une fonction personnalisée Excel ?
Une fonction personnalisée est une fonction qu'on crée soi-même pour un calcul qu'aucune fonction native d'Excel ne couvre, puis qu'on utilise dans ses formules comme SOMME ou RECHERCHEX. On la construit de deux façons : en code VBA, où elle porte le nom d'UDF, ou sans code, avec la fonction LAMBDA.
À quoi sert une fonction personnalisée dans Excel
Une fonction personnalisée te sert à ranger ton propre calcul derrière un nom de formule, le jour où aucune fonction native ne fait exactement ce dont tu as besoin.
Au lieu d'empiler dix formules imbriquées que plus personne ne relit, tu écris ta logique une seule fois, puis tu l'appelles comme SOMME en tapant = suivi de son nom dans une cellule. Elle prend des arguments, renvoie un résultat, et se recalcule à chaque changement comme n'importe quelle formule.
Le vrai gain arrive le jour où la règle évolue. Tu corriges une seule ligne au lieu de rééditer la formule sur chaque ligne du tableau, et tout le monde applique le même calcul sans risquer de recopier une version périmée.
Comment créer une fonction personnalisée dans Excel
Une fonction personnalisée (UDF) s'écrit en VBA, puis s'utilise dans tes formules comme une fonction native. Tu ouvres l'éditeur, tu écris une procédure Function, et tu l'appelles ensuite directement dans une cellule.
- 1Ouvre l'éditeur VBA avec le raccourci Alt+F11, puis va dans le menu Insertion puis Module pour créer un module de code vierge.
- 2Dans le module, écris une procédure qui commence par Function et se termine par End Function, par exemple Function TVA(montant As Double) As Double, puis à la ligne suivante TVA = montant * 0.2. Utilise bien Function et non Sub.
- 3Reviens sur Excel, tape ta fonction dans une cellule comme une formule normale, par exemple =TVA(A1), et valide avec Entrée pour obtenir le résultat.
- 4Enregistre le classeur au format qui accepte les macros, sinon Excel efface ton code à la fermeture et ta fonction disparaît.
- 5Pour retrouver ta fonction dans tous tes classeurs, range-la dans un classeur de macros personnelles ou dans un complément, elle rejoint alors la liste des fonctions comme une native.
Créer une fonction personnalisée sans VBA avec LAMBDA
Depuis Excel 365, tu peux créer ta propre fonction sans écrire une ligne de VBA, grâce à la fonction LAMBDA. Tu poses ta logique une fois avec LAMBDA, tu lui donnes un nom dans le Gestionnaire de noms, puis tu l'appelles dans tes cellules comme une fonction native.
L'avantage tient en un mot : aucune macro. Une fonction LAMBDA voyage dans un fichier Excel ordinaire, sans alerte de sécurité et sans obliger le destinataire à activer quoi que ce soit. Le VBA, lui, reste incontournable dès qu'un calcul doit lire un fichier, boucler sur des milliers de lignes ou dépasser ce qu'une formule sait exprimer.
La règle est simple. Pour une formule maison que tu réutilises et que tu partages, prends LAMBDA. Pour une logique lourde ou qui déborde du tableur, reste sur VBA.
Quelle différence entre une fonction personnalisée et une macro
Une fonction personnalisée calcule et renvoie une valeur à sa cellule, alors qu'une macro agit sur le classeur sans rien renvoyer. C'est la distinction qui prête le plus à confusion, parce que les deux s'écrivent en VBA, mais pas avec le même mot-clé.
Une fonction commence par Function et se termine par End Function : tu l'appelles depuis une cellule, elle te rend un résultat. Une macro est une procédure Sub que tu déclenches à la demande, pour mettre en forme, copier, créer une feuille ou trier, des actions qu'aucune formule ne sait lancer.
Cette frontière a une conséquence directe. Appelée depuis une formule, une fonction personnalisée ne peut pas modifier une autre cellule, changer une couleur ni insérer une ligne : elle n'a le droit que de calculer et de renvoyer. Dès que tu veux transformer la feuille, c'est une macro qu'il te faut.
Pour aller plus loin
Termes liés : Macro, VBA (Visual Basic for Applications), Formule
295 termes Excel décryptés, avec exemples et erreurs fréquentes
Questions fréquentes sur la fonction personnalisée
Le plus souvent, Excel ne reconnaît pas le nom de la fonction. Commence par vérifier l'orthographe, car la moindre faute de frappe suffit à déclencher cette erreur. Vérifie ensuite que le classeur contenant le code est bien ouvert et que les macros sont activées, sinon la fonction reste introuvable. Et si elle vit dans un autre classeur, appelle-la en préfixant son nom de celui du fichier qui l'héberge.
Oui, pour une fonction écrite en VBA. Le classeur doit être enregistré dans un format qui accepte les macros, puis ouvert avec les macros activées, sinon le code ne s'exécute pas et la fonction renvoie une erreur. Une fonction créée avec LAMBDA échappe à cette contrainte, puisqu'elle n'utilise aucune macro et fonctionne dans un fichier Excel ordinaire, même chez quelqu'un qui les bloque.
Range son code au bon endroit. Placée dans un module classique, la fonction ne vit que dans le classeur où tu l'as écrite. Pour t'en servir partout, mets-la dans ton classeur de macros personnelles, qui se charge à chaque ouverture d'Excel, ou dans un complément que tu actives une fois. Elle rejoint alors la liste des formules dans tous tes fichiers.
Toute la boîte à outils Excel
Formules, exercices, modèles, raccourcis, lexique : tout ce qu’il te faut pour progresser, en accès libre.
Tout voir






