Conversion

Comment convertir un chiffre en lettre sur Excel ? Méthodes et astuces

15 janvier 2026 20 vues

Vous vous êtes sûrement déjà demandé comment afficher un nombre en toutes lettres dans Excel. Que ce soit pour des chèques, des factures ou tout autre document nécessitant une transcription littérale des montants, Excel ne propose pas de fonction native pour cela. Heureusement, il existe des solutions alternatives, allant des formules personnalisées aux macros VBA, qui permettent d'automatiser cette tâche. Dans cet article, nous explorerons en détail les différentes approches pour **convertir un chiffre en lettre sur Excel**, en vous fournissant des exemples concrets et des instructions pas à pas pour les mettre en œuvre.

Comprendre le besoin de convertir un chiffre en lettre sur Excel

La conversion d'un chiffre en lettre sur Excel est une fonctionnalité souvent recherchée pour des raisons de clarté, de conformité ou de sécurité. Dans le domaine financier, par exemple, l'affichage d'un montant à la fois en chiffres et en lettres sur un chèque ou une facture permet de minimiser les risques d'erreur ou de fraude. De même, dans certains rapports ou documents officiels, la transcription littérale des nombres peut être une exigence légale ou réglementaire.

Bien qu'Excel ne propose pas de fonction intégrée pour effectuer directement cette conversion, il existe plusieurs méthodes alternatives pour y parvenir, chacune ayant ses avantages et ses inconvénients. Nous allons explorer ces différentes approches en détail, en commençant par les plus simples et en progressant vers les plus complexes.

Méthode 1: Utiliser une fonction personnalisée (UDF)

La méthode la plus courante et la plus flexible pour convertir un chiffre en lettre sur Excel consiste à créer une fonction personnalisée (User Defined Function ou UDF) en utilisant le langage VBA (Visual Basic for Applications). Cette fonction pourra ensuite être appelée directement depuis une cellule Excel, comme n'importe quelle autre fonction native.

Étape 1: Ouvrir l'éditeur VBA

Pour ouvrir l'éditeur VBA, appuyez simultanément sur les touches Alt et F11 de votre clavier. Une nouvelle fenêtre s'ouvrira, affichant l'éditeur VBA.

Étape 2: Insérer un nouveau module

Dans l'éditeur VBA, cliquez sur Insertion dans la barre de menu, puis sélectionnez Module. Un nouveau module sera inséré dans votre projet VBA.

Étape 3: Copier et coller le code VBA

Copiez le code VBA suivant dans le module que vous venez d'insérer:

Function NombreEnLettres(ByVal Montant As Double) As String
  Dim Unite As Variant, Dizaine As Variant, Centaine As Variant
  Dim Nb As String, I As Integer, J As Integer
  Dim Temp As String

  Unite = Array("", "un", "deux", "trois", "quatre", "cinq", "six", "sept", "huit", "neuf", "dix", "onze", "douze", "treize", "quatorze", "quinze", "seize", "dix-sept", "dix-huit", "dix-neuf")
  Dizaine = Array("", "dix", "vingt", "trente", "quarante", "cinquante", "soixante", "soixante-dix", "quatre-vingts", "quatre-vingt-dix")
  Centaine = Array("", "cent", "deux cents", "trois cents", "quatre cents", "cinq cents", "six cents", "sept cents", "huit cents", "neuf cents")

  Montant = Int(Montant * 100) / 100 ' Arrondir à 2 décimales
  Nb = Format(Montant, "0.00")
  Nb = Replace(Nb, ",", ".") ' Remplacer virgule par point
  Nb = Split(Nb, ".")

  ' Traitement de la partie entière
  I = Int(Nb(0))
  If I = 0 Then
    NombreEnLettres = "zéro"
  Else
    Temp = ""
    If I >= 1000000 Then
      J = Int(I / 1000000)
      I = I Mod 1000000
      If J = 1 Then Temp = "un million " Else Temp = NombreEnLettres(J) & " millions "
    End If
    If I >= 1000 Then
      J = Int(I / 1000)
      I = I Mod 1000
      If J = 1 Then Temp = Temp & "mille " Else Temp = Temp & NombreEnLettres(J) & " mille "
    End If
    If I >= 100 Then
      J = Int(I / 100)
      I = I Mod 100
      Temp = Temp & Centaine(J) & " "
    End If
    If I >= 20 Then
      J = Int(I / 10)
      I = I Mod 10
      Temp = Temp & Dizaine(J) & " "
      If I > 0 Then
        If J = 7 And I = 1 Then Temp = Temp & "et "
        Temp = Temp & Unite(I) & " "
      End If
    Else
      Temp = Temp & Unite(I) & " "
    End If
    NombreEnLettres = Trim(Temp)
  End If

  ' Traitement de la partie décimale
  If Nb(1) > 0 Then
    NombreEnLettres = NombreEnLettres & " virgule " & NombreEnLettres(Nb(1))
  End If

End Function

Description du code:

  • La fonction NombreEnLettres prend un nombre (de type Double) en entrée et renvoie une chaîne de caractères (de type String) représentant le nombre en lettres.
  • Le code utilise des tableaux (Unite, Dizaine, Centaine) pour stocker les correspondances entre les chiffres et les mots.
  • Le code gère les unités, les dizaines, les centaines, les milliers et les millions.
  • Le code prend en compte les règles de grammaire françaises (par exemple, l'ajout de "et" pour les nombres se terminant par "un" après une dizaine).
  • Le code gère également la partie décimale du nombre.

Étape 4: Enregistrer le classeur Excel

Il est crucial d'enregistrer votre classeur Excel au format .xlsm (Classeur Excel prenant en charge les macros) pour que le code VBA soit conservé. Pour ce faire, cliquez sur Fichier dans la barre de menu, puis sélectionnez Enregistrer sous. Choisissez le format .xlsm dans la liste des formats disponibles.

Étape 5: Utiliser la fonction dans Excel

Vous pouvez maintenant utiliser la fonction NombreEnLettres dans n'importe quelle cellule de votre feuille Excel. Par exemple, si vous avez un nombre dans la cellule A1, vous pouvez écrire la formule suivante dans une autre cellule:

=NombreEnLettres(A1)

La cellule affichera alors la transcription littérale du nombre contenu dans la cellule A1.

Exemple pratique

Si la cellule A1 contient le nombre 1234.56, la formule =NombreEnLettres(A1) affichera mille deux cent trente-quatre virgule cinquante six.

Méthode 2: Utiliser une formule Excel complexe (sans VBA)

Bien que moins flexible que la méthode VBA, il est possible de convertir un chiffre en lettre sur Excel en utilisant une formule Excel complexe. Cette méthode est plus laborieuse à mettre en place et a des limitations en termes de nombres gérés, mais elle peut être utile si vous ne souhaitez pas utiliser de code VBA.

Important: Cette méthode est extrêmement complexe et difficile à maintenir. Elle est présentée ici à titre informatif, mais il est fortement recommandé d'utiliser la méthode VBA pour une solution plus robuste et évolutive.

La construction d'une telle formule impliquerait l'utilisation intensive des fonctions SI, CHOISIR, GAUCHE, DROITE, NBCAR et de la concaténation de chaînes de caractères (&).

Limitations de cette méthode

  • La formule devient extrêmement longue et difficile à lire et à maintenir.
  • La formule est limitée aux nombres gérés (par exemple, elle peut ne pas fonctionner correctement pour les nombres supérieurs à 999).
  • La formule peut être difficile à adapter à des règles de grammaire spécifiques.

Méthode 3: Utiliser un complément Excel existant

Il existe des compléments Excel disponibles sur le marché qui permettent de convertir un chiffre en lettre sur Excel. Ces compléments sont généralement payants, mais ils peuvent offrir une solution clé en main avec des fonctionnalités avancées et un support technique.

Avantages

  • Facilité d'installation et d'utilisation.
  • Fonctionnalités avancées (par exemple, gestion de devises, de langues, de règles de grammaire).
  • Support technique.

Inconvénients

  • Coût.
  • Dépendance à un fournisseur tiers.
  • Possibilité de problèmes de compatibilité avec certaines versions d'Excel.

Conseils et astuces pour une conversion réussie

  • Arrondir les nombres: Avant de convertir un chiffre en lettre sur Excel, assurez-vous d'arrondir les nombres à la précision souhaitée (par exemple, à deux décimales pour les montants en euros). Vous pouvez utiliser la fonction ARRONDI d'Excel pour cela.
  • Gérer les nombres négatifs: Si vous devez gérer des nombres négatifs, vous pouvez ajouter une condition dans votre code VBA ou votre formule Excel pour afficher "moins" devant la transcription littérale du nombre.
  • Gérer les devises: Si vous devez gérer des devises, vous pouvez ajouter une condition dans votre code VBA ou votre formule Excel pour afficher le symbole de la devise appropriée (par exemple, "euros" ou "dollars") après la transcription littérale du nombre.
  • Tester votre code: Testez votre code VBA ou votre formule Excel avec différents nombres (positifs, négatifs, entiers, décimaux, grands nombres) pour vous assurer qu'il fonctionne correctement.
  • Commenter votre code: Commentez votre code VBA pour le rendre plus facile à comprendre et à maintenir.

Erreurs à éviter

  • Oublier d'enregistrer le classeur au format .xlsm: Si vous utilisez du code VBA, n'oubliez pas d'enregistrer votre classeur au format .xlsm pour que le code soit conservé.
  • Utiliser des références de cellules incorrectes: Vérifiez que les références de cellules utilisées dans votre code VBA ou votre formule Excel sont correctes.
  • Ne pas gérer les erreurs: Ajoutez des gestionnaires d'erreurs à votre code VBA pour éviter que votre code ne plante en cas d'erreur.
  • Ne pas tester votre code: Testez votre code VBA ou votre formule Excel avec différents nombres pour vous assurer qu'il fonctionne correctement.

En conclusion, convertir un chiffre en lettre sur Excel est une tâche qui peut être réalisée de différentes manières, chacune ayant ses avantages et ses inconvénients. La méthode la plus flexible et la plus recommandée est l'utilisation d'une fonction personnalisée (UDF) en VBA. Cependant, si vous ne souhaitez pas utiliser de code VBA, vous pouvez également utiliser une formule Excel complexe ou un complément Excel existant. Quel que soit la méthode que vous choisissez, assurez-vous de tester votre code ou votre formule avec différents nombres pour vous assurer qu'il fonctionne correctement.

Questions fréquentes

Excel a-t-il une fonction intégrée pour convertir les chiffres en lettres ?

Non, Excel ne propose pas de fonction intégrée pour convertir directement les chiffres en lettres. Vous devez utiliser une fonction personnalisée (UDF) en VBA, une formule Excel complexe, ou un complément Excel.

Est-il sûr d'utiliser du code VBA trouvé en ligne ?

Il est important d'être prudent lorsque vous utilisez du code VBA trouvé en ligne. Assurez-vous de comprendre le code avant de l'exécuter et de le télécharger à partir de sources fiables. Vous pouvez également utiliser un analyseur de code VBA pour détecter d'éventuelles menaces.

Comment puis-je faire fonctionner la fonction VBA si j'obtiens une erreur #NOM?

L'erreur #NOM? indique qu'Excel ne reconnaît pas la fonction. Assurez-vous que le code VBA est correctement inséré dans un module, que le classeur est enregistré au format `.xlsm`, et que vous avez activé les macros si nécessaire. Vérifiez également que le nom de la fonction est correctement orthographié dans votre formule Excel.

Mots-clés associés :

excel vba nombre en lettre excel vba formule excel nombre en lettre fonction nombre en lettre excel macro excel convertir chiffre en lettre excel convertir montant en lettre

Partager cet article :