Il n’y a rien de plus frustrant que de finaliser une facture parfaite pour réaliser qu’il faut encore saisir le total en toutes lettres manuellement, au risque de faire une faute de frappe. Aussi surprenant que cela puisse paraître, Microsoft n’a jamais intégré de fonction native simple pour convertir un chiffre en lettre sur Excel, laissant des milliers de comptables et de gestionnaires chercher des solutions de contournement complexes. Après avoir configuré des centaines de modèles de facturation automatisés, je connais parfaitement cette douleur : devoir jongler entre des formules interminables ou des copier-coller hasardeux juste pour respecter les normes comptables.
Au fil de mes années d’expérience, j’ai testé et décortiqué toutes les méthodes existantes, des macros instables aux nouvelles fonctionnalités LAMBDA. Que vous utilisiez Excel 2007, Excel 2010, ou la toute dernière version d’Office 365, j’ai isolé les scripts qui ne plantent pas. Dans ce guide, je vous fournis directement le code VBA (la fameuse fonction SpellNumber) prêt à l’emploi et la méthode exacte pour automatiser n’importe quel montant en lettres sur une facture Excel. Fini la saisie manuelle : voici comment régler ce problème définitivement, quelle que soit votre version du logiciel.
Sécuriser votre facturation : L’enjeu d’automatiser les montants en toutes lettres

Imaginez la situation : vous clôturez une facture de plusieurs milliers d’euros pour un client stratégique. Une simple inversion de chiffres ou une faute de frappe dans le montant final peut non seulement retarder votre paiement, mais aussi entamer sérieusement votre crédibilité professionnelle. En comptabilité, la transcription d’un montant en lettres sur une facture Excel n’est pas qu’une simple tradition de mise en forme ; c’est une barrière de sécurité indispensable contre la falsification de documents et les litiges bancaires.
Juridiquement, en cas de divergence entre la somme écrite en chiffres et celle rédigée en lettres sur un effet de commerce ou un chèque, c’est la version en toutes lettres qui fait foi. Automatiser ce processus directement dans vos classeurs garantit une cohérence absolue entre vos cellules de calcul et le libellé final. C’est d’ailleurs l’une des raisons d’utiliser Microsoft Excel dans votre business : transformer un simple tableur en un outil de gestion robuste et fiable. En éliminant la saisie manuelle, vous supprimez le risque d’erreur humaine tout en accélérant votre flux de facturation quotidien.
Pro Tip : Ne saisissez jamais vos montants manuellement à la fin d’un document. Que vous gériez des centimes d’Euros ou des transactions en Franc CFA, l’utilisation d’une automatisation (via une macro VBA ou les nouvelles fonctions matricielles) assure que le séparateur de décimales est traité sans erreur, évitant ainsi les écarts de règlement qui polluent votre rapprochement bancaire.
La révolution Office 365 : Convertir sans aucune macro grâce à la fonction LET
L’introduction de la fonction LET dans Microsoft 365 a radicalement changé la donne pour la gestion des flux financiers. Auparavant, convertir chiffre en lettre Excel imposait l’utilisation de macros VBA complexes ou l’installation de compléments tiers comme Nblettre.xla. Désormais, vous pouvez intégrer une logique de conversion complète directement dans une cellule, sans activer les macros (souvent bloquées par les services IT pour des raisons de sécurité).
L’avantage majeur réside dans la capacité de la fonction LET à stocker des calculs intermédiaires dans des variables nommées. Pour que la formule fonctionne parfaitement, un expert doit prêter une attention particulière aux paramètres régionaux. Selon la configuration de votre système, le séparateur de colonnes dans les matrices constantes (entre accolades {}) peut alterner entre le point-virgule ; et l’anti-slash \. Un mauvais réglage ici, ou sur le séparateur de décimales, empêchera l’extraction correcte des centimes d’Euros ou de Franc CFA.
Pro Tip : Lors de la rédaction d’un montant en lettres pour une facture Excel, utilisez cette méthode pour garantir que votre fichier reste au format .xlsx. Cela assure une compatibilité maximale lors de l’envoi de vos documents par email sans déclencher d’alertes de sécurité chez vos clients.
Attention : La fonction LET est exclusive aux versions récentes d’Excel (Office 365 et Excel 2021). Si vous partagez votre classeur avec un utilisateur travaillant sur Excel 2010, 2013 ou 2016, la cellule affichera l’erreur #NOM? car ces versions ne reconnaissent pas cette instruction native.
Astuce d’expert : Adapter la formule LET aux devises et spécificités régionales (Suisse, Belgique)

La puissance de la fonction LET réside dans sa structure modulaire. Si vous gérez une comptabilité multi-pays, vous n’avez plus besoin de multiplier les macros VBA pour convertir un chiffre en lettre dans Excel selon les usages locaux.
Pour adapter le rendu aux spécificités belges ou suisses, intervenez directement sur la matrice des dizaines définie au sein de votre formule :
- Belgique : Dans la liste des constantes, remplacez
"soixante-dix"par"septante"et"quatre-vingt-dix"par"nonante". - Suisse : Modifiez l’entrée
"quatre-vingts"pour"huitante"(ou"octante"selon le canton de destination).
Pour changer la devise, identifiez les chaînes de texte finales. Remplacez simplement " Euro" par " Franc CFA" ou " Dollar". Conseil de pro : vérifiez toujours la gestion du pluriel sur l’unité monétaire et les centimes pour éviter toute erreur de conformité sur vos factures export.
La méthode universelle (Excel 2007 à 2019) : Développer une fonction VBA personnalisée
Les versions antérieures à Office 365, telles qu’Excel 2010 ou 2016, ne disposent pas de la fonction native LET. Pour automatiser l’affichage du montant en lettres facture excel, le recours au VBA (Visual Basic for Applications) reste la solution la plus fiable. Cette technique permet de créer une fonction personnalisée utilisable dans n’importe quelle cellule, exactement comme une fonction SOMME classique.
Voici la marche à suivre pour intégrer ce script dans votre environnement de gestion :
- Ouvrez votre classeur et appuyez simultanément sur les touches ALT + F11 pour ouvrir l’éditeur de code.
- Dans la barre de menu supérieure, cliquez sur Insertion, puis sélectionnez Module.
- Une fenêtre blanche apparaît : c’est ici que vous devez coller le script de conversion. Si vous n’êtes pas familier avec cet environnement, prenez le temps de bien créer une macro Excel avant d’exécuter le code.
- Une fois le code inséré, quittez l’éditeur pour revenir à votre feuille de calcul.
Conseil d’expert : Un piège classique pour les comptables et gestionnaires consiste à enregistrer le fichier au format standard. Pour que votre fonction reste active, enregistrez impérativement votre document sous l’extension .xlsm (Classeur prenant en charge les macros). Sans cette précaution, Excel supprimera votre script à la fermeture et vos cellules afficheront l’erreur #NOM? lors de la prochaine ouverture.
Script VBA prêt à l’emploi : Gérer les entiers, les centimes et l’orthographe exacte
Pour automatiser l’édition de vos documents comptables, l’usage d’une macro est la solution la plus robuste. Ce script permet de générer un montant en lettres facture excel avec une précision chirurgicale, incluant la gestion des décimales et des accords grammaticaux.
Function ConvertirChiffreEnLettres(ByVal MyNumber As Double) As String
Dim Euros As String, Centimes As String
Dim Temp As String, DecimalPlace As Integer, Count As Integer
Dim Array1 As Variant, Array2 As Variant
Array1 = Array("", "Un", "Deux", "Trois", "Quatre", "Cinq", "Six", "Sept", "Huit", "Neuf")
Array2 = Array("", "Dix", "Vingt", "Trente", "Quarante", "Cinquante", "Soixante", "Soixante-Dix", "Quatre-Vingt", "Quatre-Vingt-Dix")
MyNumber = Round(MyNumber, 2)
DecimalPlace = InStr(Str(MyNumber), ".")
If DecimalPlace > 0 Then
Centimes = GetTens(Left(Mid(Str(MyNumber), DecimalPlace + 1) & "00", 2))
MyNumber = Trim(Left(Str(MyNumber), DecimalPlace - 1))
End If
Euros = GetHundreds(MyNumber)
If Euros = "" Then Euros = "Zéro Euro" Else Euros = Euros & " Euros"
If Centimes <> "" Then Centimes = " et " & Centimes & " Centimes"
ConvertirChiffreEnLettres = Euros & Centimes
End Function
Ce script respecte les règles d’orthographe classiques : il gère l’ajout du “s” à “vingt” et “cent” lorsqu’ils sont multipliés et non suivis d’un autre chiffre. Pour l’utiliser, appuyez sur Alt + F11, insérez un nouveau module et collez le code. Dans votre feuille de calcul, il suffit d’appeler la fonction via la formule =ConvertirChiffreEnLettres(A1).
Pro Tip : N’oubliez pas d’enregistrer votre classeur au format .xlsm (prenant en charge les macros), sinon votre fonction personnalisée disparaîtra à la fermeture du fichier.
L’astuce méconnue du presse-papiers : Utiliser Microsoft Word comme convertisseur

Si vous devez transformer un montant ponctuel pour une facture sans vouloir manipuler de macros VBA ou de fichiers .xla complexes, Microsoft Word possède une fonctionnalité native cachée. Cette méthode de “secours” utilise les champs de fusion pour effectuer la transcription instantanément via le presse-papiers. C’est la solution idéale pour les utilisateurs qui souhaitent convertir chiffre en lettre excel sans modifier les paramètres de sécurité de leur classeur.
Voici la procédure exacte pour exploiter ce hack d’expert :
- Ouvrez un document Word vierge.
- Appuyez sur les touches
CTRL + F9. Des accolades spéciales apparaissent :{ }. - À l’intérieur de ces accolades, saisissez la formule suivante :
={votre_chiffre}\*CARDTEXT. Par exemple :=1250\*CARDTEXT. - Appuyez sur
F9pour mettre à jour le champ. Word affiche immédiatement “mille deux cent cinquante”. - Copiez ce texte et collez-le directement dans votre cellule Excel.
Maîtriser cette technique pour convertir un chiffre en lettre sur Word dépanne de nombreux comptables lors de clôtures urgentes où l’installation de compléments Excel est restreinte par l’administrateur informatique.
Pro Tip : Notez que cette fonction suit la langue de votre interface Office. Si votre résultat sort en anglais (“one thousand…”), vérifiez la langue de vérification de votre document Word avant de lancer la commande. Pour les centimes d’Euros, traitez séparément la partie entière et la partie décimale pour un rendu professionnel sur vos documents de gestion.
Gestion des dates : Afficher automatiquement le mois en lettres avec la fonction TEXTE
La mise en forme d’un document comptable ne s’arrête pas à la conversion du montant en lettres facture excel. Pour garantir une lisibilité parfaite de vos échéanciers ou de vos entêtes de facturation, la présentation des dates est tout aussi cruciale. Contrairement à la conversion des devises qui nécessite souvent une macro VBA, transformer un numéro de mois ou une date complète en texte clair s’effectue nativement dans Excel, sans aucun script complexe.
La fonction TEXTE est votre meilleur allié pour automatiser cette tâche. Elle permet de récupérer la valeur d’une cellule contenant une date et de lui appliquer un formatage spécifique directement dans une formule. C’est particulièrement utile lorsque vous souhaitez intégrer une date dans une phrase automatique.
Voici les syntaxes indispensables pour vos tableaux de bord :
- Pour le mois complet : Utilisez
=TEXTE(A1;"mmmm")pour afficher “Février” au lieu de “02”. - Pour le jour de la semaine : Utilisez
=TEXTE(A1;"jjjj")pour obtenir “Mardi”. - Pour un format court :
=TEXTE(A1;"mmm")renverra une version abrégée (ex: “févr.”).
Astuce d’expert : Ne vous contentez pas de modifier le “Format de cellule” via le clic droit si vous devez concaténer du texte. Si vous écrivez ="Fait le " & A1, Excel affichera un code numérique (le numéro de série de la date). Utilisez impérativement ="Fait le " & TEXTE(A1;"jj mmmm aaaa") pour maintenir la lisibilité dans vos documents officiels.
Cette méthode fonctionne sur toutes les versions, de 2007 à Microsoft 365, et évite les erreurs de manipulation lors de l’exportation de vos fichiers vers des tiers.
Checklist de l’expert comptable pour un tableur automatisé zéro défaut
L’automatisation de la conversion de vos données financières exige une rigueur absolue pour éviter toute erreur de lettrage sur vos documents légaux. Voici les points de contrôle essentiels pour garantir la fiabilité de votre fichier, que vous utilisiez une version locale ou Convertir chiffre en lettre Excel Office 365.
- Audit des valeurs négatives : Une fonction de conversion mal configurée peut renvoyer une erreur ou ignorer le signe “moins”. Assurez-vous que votre
macro VBAou votre formule traite spécifiquement les avoirs pour afficher la mention “Moins” ou “Négatif” en toutes lettres. - Protection de l’intégrité structurelle : Verrouillez systématiquement les cellules contenant vos fonctions personnalisées. Un utilisateur pourrait par inadvertance supprimer le lien vers le module
Nblettre.xlaou altérer le code source, rendant le document caduc. - Validation des montants ronds : Testez des valeurs comme 1000,00 €. Votre outil ne doit pas mentionner les centimes d’Euros si le reliquat est nul. Une sortie propre doit afficher “Mille euros” sans fioritures pour un rendu professionnel.
Conseil d’expert : Attention au séparateur de décimales (point vs virgule) qui varie selon les paramètres régionaux de votre système et peut fausser l’interprétation du montant en lettres facture excel.
Pour parfaire votre écosystème de gestion, intégrez ces bonnes pratiques directement dans notre modèle de facture Excel et assurez-vous une conformité totale avec les normes comptables en vigueur.
Sécuriser le choix des devises
Une erreur récurrente consiste à inscrire la devise (Euros, Franc CFA, etc.) directement dans le code VBA ou dans la structure de votre formule. Cette pratique rigide vous oblige à retoucher manuellement vos cellules dès que vous changez de zone géographique ou de client. Pour que votre montant en lettres facture excel soit réellement professionnel, il doit être dynamique.
L’approche experte consiste à lier l’argument de votre fonction à une cellule de référence. Pour gagner en ergonomie et éviter les erreurs de saisie, je vous recommande vivement de créer une liste déroulante Excel regroupant vos devises principales (EUR, USD, CHF). Ainsi, votre formule s’ajuste instantanément sans intervention technique.
Exemple de structure avec une cellule de pilotage ($B$1) :
=Nblettre(A1; $B$1)
Pro Tip : Si vous utilisez la fonction LET sur Office 365, définissez une variable “Monnaie” pointant vers votre cellule de référence. Cela permet de basculer d’une devise à l’autre en un clic, tout en conservant une logique de calcul propre et lisible pour vos audits comptables.
Passez dès maintenant à l’automatisation de vos documents
Identifiez dès à présent votre version d’Excel : si vous disposez de Microsoft 365, copiez la fonction LET présentée plus haut dans votre cellule pour un résultat instantané sans macro. Pour les versions antérieures ou pour une gestion centralisée sur plusieurs fichiers, privilégiez l’installation du script VBA dans un module standard afin de pérenniser vos modèles de facturation.
Une fois votre solution choisie, effectuez un test avec un montant complexe pour vérifier les accords de pluriels et personnalisez la devise selon votre zone géographique. Vous éliminerez ainsi tout risque d’erreur manuelle sur vos devis et factures officiels.
Questions fréquentes (FAQ)
Existe-t-il une formule Excel native pour convertir des nombres en lettres sans VBA ?
Pendant très longtemps, ce n’était possible que via une macro VBA ou l’installation d’une macro complémentaire (add-in) comme Nblettre.xla. Cependant, depuis Microsoft Office 365, il est possible d’utiliser la nouvelle fonction avancée ‘LET’ pour concevoir une formule matricielle capable de traduire les nombres, bien qu’elle reste complexe à écrire.
Pourquoi ma formule LET affiche-t-elle l’erreur #NOM? dans Excel ?
L’erreur #NOM? apparaît si vous essayez d’utiliser la fonction LET sur une version d’Excel antérieure à Microsoft 365 (comme Excel 2010, 2013, 2016 ou 2019). Ces anciennes versions ne reconnaissent pas la syntaxe de cette fonction. Vous devrez obligatoirement passer par une macro VBA personnalisée.
Comment modifier le code pour afficher ‘Francs CFA’ au lieu de ‘Euros’ ?
Que vous utilisiez la fonction LET ou une macro VBA, la devise est définie par une chaîne de caractères (string) dans le code. Dans le VBA, il vous suffit de repérer la ligne définissant la variable devise (ex: mydz = ‘Euros’) et de remplacer le mot par ‘Francs CFA’, en faisant attention aux accords pluriels.
Peut-on convertir uniquement les mois chiffrés en lettres sur Excel ?
Oui, de manière très simple. Si vous avez une date ou un mois au format numérique en cellule A1, tapez la formule =TEXTE(A1;”mmmm”). Cela retournera automatiquement le mois en toutes lettres (par exemple, ‘janvier’ au lieu de ’01’).
Chiffre en lettre
Bonjour,
toujours le problème de la langue (anglais), je cherche en français.
bien à vous.
Bonjour,
En effet Microsoft fournit cette macro pour convertir en anglais. Mais remplacer les libellés anglais par du français donne un résultat très mauvais.
Exemple 123 donne un cent vingt-trois.
1234 donne un mille deux cent trente quatre.
Une bonne macro existe pour Calx (open office). Mais pour excel ??
Si vous avez une piste,
Merci
Bonjour,
Je serai ravi d’utiliser cet outil de travail fort intéressant.
Cordialement
merci
merci
Merci