Comment écrire un nombre en toutes lettres dans Excel ?
Sans l’add-in
Excel n’a pas de fonction qui écrit un nombre en toutes lettres en français. Avec Excel pour Microsoft 365 ou Excel 2024, vous pouvez en créer une avec LAMBDA, sans macro :
- Ouvrez Formules › Gestionnaire de noms › Nouveau.
- Dans Nom, saisissez
NBL. - Dans Fait référence à, collez la formule suivante, puis validez.
=LAMBDA(n;
LET(
u;{"zéro";"un";"deux";"trois";"quatre";"cinq";"six";"sept";"huit";"neuf";"dix";
"onze";"douze";"treize";"quatorze";"quinze";"seize";"dix-sept";"dix-huit";"dix-neuf"};
d;{"";"";"vingt";"trente";"quarante";"cinquante";"soixante"};
q;LAMBDA(r;f;
SI(r<20;INDEX(u;r+1);
SI(r<70;INDEX(d;ENT(r/10)+1)&SI(MOD(r;10)=0;"";SI(MOD(r;10)=1;" et un";"-"&INDEX(u;MOD(r;10)+1)));
SI(r<80;"soixante"&SI(r=71;" et onze";"-"&INDEX(u;r-59));
SI(r=80;"quatre-vingt"&SI(f;"s";"");"quatre-vingt-"&INDEX(u;r-79)))))
);
c;LAMBDA(m;f;
LET(
h;ENT(m/100);
r;MOD(m;100);
SI(h=0;"";SI(h=1;"cent";INDEX(u;h+1)&" cent"&SI(ET(r=0;f);"s";"")))
&SI(ET(h>0;r>0);" ";"")
&SI(r=0;"";q(r;f))
)
);
M;ENT(n/1000000);
T;MOD(ENT(n/1000);1000);
B;MOD(n;1000);
SI(n=0;"zéro";
SI(M=0;"";c(M;VRAI)&" million"&SI(M>1;"s";""))
&SI(ET(M>0;T+B>0);" ";"")
&SI(T=0;"";SI(T=1;"mille";c(T;FAUX)&" mille"))
&SI(ET(T>0;B>0);" ";"")
&SI(B=0;"";c(B;VRAI))
)
)
)
Les retours à la ligne ne servent qu’à la lecture : le bouton de copie fournit la formule sur une seule ligne, prête à coller dans la zone Fait référence à.
Vous pouvez alors écrire dans n’importe quelle cellule du classeur, pour un nombre en A2 :
=NBL(A2)
Limites :
- la fonction ne couvre que les nombres entiers positifs de 0 à 999 999 999. Elle ne gère ni les décimales ni les nombres négatifs (voir écrire un nombre négatif ou décimal en lettres), ni les erreurs : une cellule vide donne « zéro » ;
- elle n’existe que dans le classeur où vous l’avez définie : il faut la recopier dans chaque classeur ;
LAMBDAn’existe pas dans Excel 2016, 2019 ni 2021. Dans ces versions, la seule solution sans add-in est une macro (voir faut-il une macro VBA pour écrire un nombre en lettres).
Avec l’add-in
Nombres Excel Add-in
=NOMBRE_EN_LETTRES(A2)
| Formule | Résultat |
|---|---|
=NOMBRE_EN_LETTRES(21) |
vingt et un |
=NOMBRE_EN_LETTRES(71) |
soixante et onze |
=NOMBRE_EN_LETTRES(80) |
quatre-vingts |
=NOMBRE_EN_LETTRES(200) |
deux cents |
=NOMBRE_EN_LETTRES(1200) |
mille deux cents |
=NOMBRE_EN_LETTRES(1000000) |
un million |
L’orthographe est la traditionnelle : « quatre-vingts » mais « quatre-vingt-un », « deux cents » mais « deux cent un » et « deux cent mille ». La fonction accepte les nombres jusqu’à 999 999 999 999 999. Une cellule vide donne un texte vide, et non « zéro ». Détails : NOMBRE_EN_LETTRES (nouvel onglet).
Ce que l’add-in change : Une seule fonction, sans définition à recopier dans chaque classeur, qui gère aussi les décimales, les nombres négatifs et les très grands nombres. Découvrir Nombres Excel Add-in
Sources
- Fonction LAMBDA – Support Microsoft (nouvel onglet) (page en anglais) : disponibilité dans Excel pour Microsoft 365 et Excel 2024, création d’une fonction nommée dans le Gestionnaire de noms.
Autres questions sur le même sujet
- Faut-il une macro VBA pour écrire un nombre en lettres dans Excel ?
- Comment écrire un montant en lettres sur une facture ou un chèque dans Excel ?
- Comment écrire une quantité en lettres sur un bon de commande dans Excel ?
- Comment écrire des montants en lettres dans plusieurs devises dans Excel ?
- Comment écrire un nombre négatif ou décimal en lettres dans Excel ?
- Mes collègues doivent-ils installer l’add-in pour voir les nombres en lettres d’un classeur ?