Accéder au contenu principal

Kutools for Office — Une Suite. Cinq Outils. Accomplissez Plus.

Conversion de nombres en mots en roupies indiennes et autres devises dans Excel (édition 2025)

Author Xiaoyang Last modified

Voici comment convertir des nombres en mots en roupies indiennes ou toute autre devise dans Excel.

Lorsque vous travaillez avec des documents financiers tels que des factures, devis, formulaires fiscaux, chèques ou bons de paiement, il est souvent nécessaire de représenter les valeurs monétaires sous forme numérique et en toutes lettres. Cela ajoute une couche de professionnalisme et aide à prévenir la fraude ou les erreurs d'interprétation.

Exemple

12 350,50 → Roupies Douze Mille Trois Cent Cinquante et Cinquante Paisas Seulement

Bien que Microsoft Excel ne dispose pas d'une fonction intégrée pour convertir des nombres en mots, il existe plusieurs méthodes efficaces pour y parvenir — via VBA, des fonctions LAMBDA, ou l'add-in tout-en-un Kutools pour Excel.

Convertir des nombres en mots en roupies indiennes avec VBA (toutes versions Microsoft)

Convertir des nombres en mots en roupies indiennes avec la fonction LAMBDA (Microsoft 365 uniquement)

Convertir des nombres en USD, EUR et plus de 30 autres devises (toutes versions Microsoft)

Quand utiliser chaque méthode


Convertir des nombres en mots en roupies indiennes avec VBA (toutes versions Microsoft)

Pour les utilisateurs de n’importe quelle version d’Excel, VBA (Visual Basic for Applications) offre une méthode personnalisable pour convertir des montants numériques en mots en utilisant le système de numérotation indien (par exemple, milliers, lakhs, crores).

Étape 1. Appuyez sur Alt + F11 pour ouvrir l'éditeur VBA (fenêtre Microsoft Visual Basic pour Applications).

vba-editor

Étape 2. Allez dans Insertion > Module.

select-module

Étape 3. Collez le code VBA dans le module.

Convertir des nombres en mots en roupies indiennes

Function ConvertToRupees(ByVal MyNumber)
'UpdatebyExtendoffice
    Dim Units As String, SubUnits As String, TempStr As String
    Dim DecimalPlace As Integer, Count As Integer
    Dim Place(9) As String
    Place(2) = " Thousand "
    Place(3) = " Lakh "
    Place(4) = " Crore "
    
    MyNumber = Trim(Str(MyNumber))
    DecimalPlace = InStr(MyNumber, ".")
    
    If DecimalPlace > 0 Then
        SubUnits = GetTens(Left(Mid(MyNumber, DecimalPlace + 1) & "00", 2))
        MyNumber = Trim(Left(MyNumber, DecimalPlace - 1))
    End If
    
    Count = 1
    Do While MyNumber <> ""
        TempStr = GetHundreds(Right(MyNumber, 3))
        If TempStr <> "" Then Units = TempStr & Place(Count) & Units
        If Len(MyNumber) > 3 Then
            MyNumber = Left(MyNumber, Len(MyNumber) - 3)
        Else
            MyNumber = ""
        End If
        Count = Count + 1
    Loop
    
    ConvertToRupees = "Rupees " & Application.WorksheetFunction.Trim(Units)
    If SubUnits <> "" Then
        ConvertToRupees = ConvertToRupees & " and " & SubUnits & " Paise"
    End If
    ConvertToRupees = ConvertToRupees & " Only"
End Function

Private Function GetHundreds(ByVal MyNumber)
    Dim Result As String
    If Val(MyNumber) = 0 Then Exit Function
    MyNumber = Right("000" & MyNumber, 3)
    
    If Mid(MyNumber, 1, 1) <> "0" Then
        Result = GetDigit(Mid(MyNumber, 1, 1)) & " Hundred "
    End If
    
    If Mid(MyNumber, 2, 1) <> "0" Then
        Result = Result & GetTens(Mid(MyNumber, 2))
    Else
        Result = Result & GetDigit(Mid(MyNumber, 3))
    End If
    GetHundreds = Result
End Function

Private Function GetTens(TensText)
    Dim Result As String
    If Val(Left(TensText, 1)) = 1 Then
        Select Case Val(TensText)
            Case 10: Result = "Ten"
            Case 11: Result = "Eleven"
            Case 12: Result = "Twelve"
            Case 13: Result = "Thirteen"
            Case 14: Result = "Fourteen"
            Case 15: Result = "Fifteen"
            Case 16: Result = "Sixteen"
            Case 17: Result = "Seventeen"
            Case 18: Result = "Eighteen"
            Case 19: Result = "Nineteen"
        End Select
    Else
        Select Case Val(Left(TensText, 1))
            Case 2: Result = "Twenty "
            Case 3: Result = "Thirty "
            Case 4: Result = "Forty "
            Case 5: Result = "Fifty "
            Case 6: Result = "Sixty "
            Case 7: Result = "Seventy "
            Case 8: Result = "Eighty "
            Case 9: Result = "Ninety "
        End Select
        Result = Result & GetDigit(Right(TensText, 1))
    End If
    GetTens = Result
End Function

Private Function GetDigit(Digit)
    Select Case Val(Digit)
        Case 1: GetDigit = "One"
        Case 2: GetDigit = "Two"
        Case 3: GetDigit = "Three"
        Case 4: GetDigit = "Four"
        Case 5: GetDigit = "Five"
        Case 6: GetDigit = "Six"
        Case 7: GetDigit = "Seven"
        Case 8: GetDigit = "Eight"
        Case 9: GetDigit = "Nine"
        Case Else: GetDigit = ""
    End Select
End Function
paste-code

Étape 4. Enregistrez et retournez dans Excel.

Étape 5. Sélectionnez une cellule et utilisez la formule comme suit :

=ConvertToRupees(A2)

Appuyez sur la touche Entrée

use-formula

💡 Astuce : Cette méthode prend en charge les décimales (Paise) et fonctionne hors ligne.

Limitations lors de l'utilisation de VBA

  • Nécessite d'enregistrer le classeur au format prenant en charge les macros (.xlsm).
  • Les macros peuvent être bloquées par les paramètres de sécurité dans certains environnements.

Convertir des nombres en mots dans d'autres devises (USD, EUR, etc.)

Pour personnaliser la sortie pour d'autres devises, comme « Dollars » ou « Euros », vous pouvez ajuster les valeurs de chaînes de caractères dans la fonction VBA. Voici une version simplifiée et plus flexible de la fonction.

Modèle de code VBA flexible (devise personnalisée)

'UpdatebyExtendoffice
Public Function NumberToWordsCustom(ByVal num As Double, Optional ByVal currency2 As String, Optional ByVal subCurrency As String) As String
    Dim result As String
    Dim dollars As Long
    Dim cents As Long

    dollars = Int(num)
    cents = Round((num - dollars) * 100)
  
    If Len(currency2) = 0 Then currency2 = "Dollars"
    If Len(subCurrency) = 0 Then subCurrency = "Cents"
    result = currency2 & " " & SpellNumber_English(dollars)

    If cents > 0 Then
        result = result & " and " & SpellNumber_English(cents) & " " & subCurrency
    End If

    NumberToWordsCustom = result & " Only"
End Function

Private Function SpellNumber_English(ByVal MyNumber As Long) As String
    Dim Units As Variant, Tens As Variant, Teens As Variant
    Dim Place() As String
    Dim TempStr As String
    Dim Count As Integer
    Dim t As String
    Dim StrNumber As String
    Dim n As Integer

    Place = Split(" Thousand Million Billion", " ")
    Units = Array("", "One", "Two", "Three", "Four", "Five", "Six", "Seven", "Eight", "Nine")
    Tens = Array("", "", "Twenty", "Thirty", "Forty", "Fifty", "Sixty", "Seventy", "Eighty", "Ninety")
    Teens = Array("Ten", "Eleven", "Twelve", "Thirteen", "Fourteen", "Fifteen", "Sixteen", "Seventeen", "Eighteen", "Nineteen")

    StrNumber = Trim(Str(MyNumber))
    Count = 0

    Do While StrNumber <> ""
        n = Val(Right(StrNumber, 3))
        If n <> 0 Then
            t = ConvertHundreds(n, Units, Tens, Teens)
            If Count > 0 Then t = t & " " & Place(Count - 1)
            TempStr = t & " " & TempStr
        End If
        If Len(StrNumber) > 3 Then
            StrNumber = Left(StrNumber, Len(StrNumber) - 3)
        Else
            StrNumber = ""
        End If
        Count = Count + 1
    Loop

    SpellNumber_English = Trim(TempStr)
End Function

Private Function ConvertHundreds(ByVal n As Integer, Units As Variant, Tens As Variant, Teens As Variant) As String
    Dim result As String
    If n >= 100 Then
        result = Units(Int(n / 100)) & " Hundred "
        n = n Mod 100
    End If
    If n >= 20 Then
        result = result & Tens(Int(n / 10)) & " "
        n = n Mod 10
    ElseIf n >= 10 Then
        result = result & Teens(n - 10) & " "
        n = 0
    End If
    If n > 0 Then
        result = result & Units(n)
    End If
    ConvertHundreds = Trim(result)
End Function

Exemple de formule VBA :

=NumberToWordsCustom(A2, "Dollars", "Cents")
vba-formula-to-other-currency

Exemple de formule VBA pour une autre devise :

=NumberToWordsCustom(A2, "Euros", "Cents")

=NumberToWordsCustom(A2, "Livres", "Pennies")

Le code est flexible — il suffit de passer la devise et la sous-unité souhaitées.


Enregistrez votre classeur au format prenant en charge les macros

Si vous utilisez VBA, il est crucial d'enregistrer votre classeur avec les macros activées. Sinon, votre code sera perdu lorsque le fichier sera fermé.

Étape 1. Allez dans Fichier > Enregistrer sous

use-save-as

Étape 2. Choisissez un emplacement et sélectionnez le type de fichier : Classeur Excel prenant en charge les macros (*.xlsm).

use-save-as-macro-enabled

Étape 3. Cliquez sur Enregistrer.

✅ Vos fonctions personnalisées comme =ConvertToRupees(A2) seront maintenant persistantes et réutilisables à tout moment.


Convertir des nombres en mots en roupies indiennes avec la fonction LAMBDA (Microsoft 365 uniquement)

Pour les utilisateurs d'Excel 365, vous pouvez utiliser LAMBDA, une nouvelle fonctionnalité d'Excel qui vous permet de définir des formules personnalisées sans nécessiter de VBA.

🪄 Qu'est-ce que LAMBDA ?

LAMBDA est une fonctionnalité dans Excel qui vous permet de créer vos propres fonctions personnalisées en utilisant des formules — tout comme les fonctions intégrées telles que SOMME ou SI, mais sans aucun besoin de code ou de macros. Elle est idéale pour simplifier les logiques répétitives et rendre vos feuilles de calcul plus propres et faciles à maintenir.

Étape 1 : Allez dans le Gestionnaire de noms et cliquez sur Formules > Gestionnaire de noms.

select-name-manager

Étape 2 : Créez un nouveau nom.

  • Cliquez sur le bouton Nouveau.

    create-new-name
  • Entrez un nom.

    Exemple : RupeeToWords

    create-name
  • Étape 3 : Collez cette formule LAMBDA dans le champ Fait référence à :

    =LAMBDA(n, LET( units, {"","Un","Deux","Trois","Quatre","Cinq","Six","Sept","Huit","Neuf"}, teens, {"Dix","Onze","Douze","Treize","Quatorze","Quinze","Seize","Dix-sept","Dix-huit","Dix-neuf"}, tens, {"","","Vingt","Trente","Quarante","Cinquante","Soixante","Soixante-dix","Quatre-vingts","Quatre-vingt-dix"}, num, INT(n), paise, ROUND((n - INT(n)) * 100, 0), ConvertTwo, LAMBDA(x, IF(x<10, INDEX(units, x+1), IF(x<20, INDEX(teens, x-9), INDEX(tens, INT(x/10)+1) & IF(MOD(x,10)>0, " " & INDEX(units, MOD(x,10)+1), "") ) ) ), ConvertThree, LAMBDA(x, IF(x=0, "", IF(x<100, ConvertTwo(x), INDEX(units, INT(x/100)+1) & " Cent" & IF(MOD(x,100)>0, " " & ConvertTwo(MOD(x,100)), "") ) ) ), words, IF(num=0, "Zéro", TEXTJOIN(" ", TRUE, IF(INT(num/10000000)>0, ConvertTwo(INT(num/10000000)) & " Crore", ""), IF(MOD(INT(num/100000),100)>0, ConvertTwo(INT(MOD(num,10000000)/100000)) & " Lakh", ""), IF(MOD(INT(num/1000),100)>0, ConvertTwo(INT(MOD(num,100000)/1000)) & " Mille", ""), IF(MOD(INT(num/100),10)>0, INDEX(units, INT(MOD(num,1000)/100)+1) & " Cent", ""), IF(MOD(num,100)>0, ConvertTwo(MOD(num,100)), "") ) ), result, "Roupies " & words & IF(paise>0, " et " & ConvertTwo(paise) & " Paise", "") & " Seulement", result ))
  • paste-lambda-function
  • Cliquez sur OK pour enregistrer le nouveau nom.

Étape 3. Fermez le Gestionnaire de noms et retournez dans Excel.

Étape 4. Utilisez la formule dans n'importe quelle cellule comme ceci :

=RupeeToWords(A2)

Appuyez sur la touche Entrée.

use-lambda-formula

👀 Le code complet de la fonction LAMBDA gère les Crores, Lakhs, Milliers et décimales.


Convertir des nombres en USD, EUR et plus de 30 autres devises (toutes versions Microsoft)

Pour une solution la plus efficace et professionnelle, utilisez Numbers to Words de Kutools pour Excel. Cet outil puissant prend en charge :

🌍 Plus de 30 devises, y compris :

  • Dollars US (USD)
  • Euros (EUR)
  • Yuans Chinois (CNY)
  • Livres Britanniques (GBP)
  • etc.
Télécharger

Étape 1. Sélectionnez les cellules que vous souhaitez convertir.

select-cells

Étape 2. Allez dans Kutools > Texte > Nombres en mots

select-numbers-to-words

Étape 3. Choisissez votre devise cible et cliquez sur OK.

select-currency-in-dialog

Les nombres sont convertis dans la devise spécifiée.

kutools-convert-result

😁 Astuce : Si vous souhaitez convertir directement les nombres en mots, cochez l’option Ne pas convertir en devise, et le résultat sera affiché comme suit :

convert-to-words

Quand utiliser chaque méthode

  • Utilisez VBA si vous avez besoin d’une solution flexible et programmable, et que vous êtes familiarisé avec les macros.

  • Utilisez LAMBDA si vous utilisez Excel 365, et que vous devez occasionnellement convertir des valeurs en roupies indiennes. C’est une solution légère et partageable qui ne nécessite aucune macro ou outil externe — idéale pour des tâches simples ou personnelles.
  • Utilisez Kutools pour Excel si vous recherchez la solution la plus facile, rapide et polyvalente — aucun codage requis. Kutools est particulièrement utile lorsque :
    • Vous traitez plusieurs devises.
    • Vous devez convertir des valeurs en masse ou dans de grands ensembles de données.
    • Vous voulez un outil prêt à l'emploi professionnel, sans macro, avec plus de 30 options de devises et des performances optimisées par l'IA.

Meilleurs outils de productivité pour Office

🤖 Kutools AI Aide : Révolutionnez l'analyse de données avec : Exécution intelligente | Générer du code | Créer des formules personnalisées | Analyser des données et générer des graphiques | Appeler les Fonctions améliorées de Kutools
Fonctionnalités populaires : Trouver, mettre en évidence ou marquer les doublons | Supprimer les lignes vides | Combinez les colonnes ou les cellules sans perte de données | Arrondir sans formule...
Super RECHERCHEV : Recherche multi-critères | Recherche multi-valeurs | Recherche multi-feuilles | Correspondance floue...
Liste déroulante avancée : Créer rapidement une liste déroulante | Liste déroulante dépendante | Liste déroulante à sélection multiple...
Gestionnaire de colonnes : Ajouter un nombre spécifique de Colonnes | Déplacer des Colonnes | Alterner l’état de visibilité des Colonnes masquées | Comparer des plages & Colonnes...
Fonctionnalités phares : Mise au point de la grille | Affichage de conception | Barre de formule améliorée | Gestionnaire de Classeur & Feuille de calcul | Bibliothèque d’AutoTexte | Sélecteur de date | Merge Worksheets | Chiffrer/Déchiffrer les cellules | Envoyer un e-mail par liste | Super Filtre | Filtre spécial (filtrer les cellules avec une police en gras/italique/barré...)...
Top15 des ensembles d’outils :12 outils de texte (Ajouter du texte, Supprimer des caractères spécifiques, ...) |50+ Types de graphiques (Diagramme de Gantt, ...) |40+ Formules pratiques (Calculer l’âge en fonction de la date de naissance, ...) |19 outils d’insertion (Insérer un code QR, Insérer une image depuis le chemin, ...) |12 outils de conversion (Convertir en mots, Conversion de devises, ...) |7 outils de fusion & division (Fusion avancée des lignes, Diviser les cellules, ...) | ... et bien plus encore
Utilisez Kutools dans la langue de votre choix – disponible en Anglais, Espagnol, Allemand, Français, Chinois et plus de40 autres !

Améliorez vos compétences Excel avec Kutools pour Excel, et découvrez une efficacité incomparable. Kutools pour Excel propose plus de300 fonctionnalités avancées pour booster votre productivité et gagner du temps. Cliquez ici pour obtenir la fonctionnalité dont vous avez le plus besoin...


Office Tab apporte l’interface par onglets à Office, simplifiant considérablement votre travail.

  • Activez la modification et la lecture par onglets dans Word, Excel, PowerPoint, Publisher, Access, Visio et Project.
  • Ouvrez et créez plusieurs documents dans de nouveaux onglets de la même fenêtre, plutôt que dans de nouvelles fenêtres.
  • Augmente votre productivité de50 % et réduit des centaines de clics de souris chaque jour !

Tous les modules complémentaires Kutools. Une seule installation

La suite Kutools for Office regroupe les modules complémentaires pour Excel, Word, Outlook & PowerPoint ainsi qu’Office Tab Pro, idéal pour les équipes travaillant sur plusieurs applications Office.

Excel Word Outlook Tabs PowerPoint
  • Suite tout-en-un — modules complémentaires Excel, Word, Outlook & PowerPoint + Office Tab Pro
  • Un installateur, une licence — installation en quelques minutes (compatible MSI)
  • Une synergie optimale — productivité accélérée sur l’ensemble des applications Office
  • Essai complet30 jours — sans inscription, ni carte bancaire
  • Meilleure valeur — économisez par rapport à l’achat d’add-ins individuels