Conversion de nombres en mots en roupies indiennes et autres devises dans Excel (édition 2025)
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
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 dans d'autres devises (USD, EUR, etc.)
- Enregistrez votre classeur au format prenant en charge les macros
Convertir des nombres en USD, EUR et plus de 30 autres devises (toutes versions Microsoft)
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).

Étape 2. Allez dans Insertion > 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

Étape 4. Enregistrez et retournez dans Excel.
Étape 5. Sélectionnez une cellule et utilisez la formule comme suit :
Appuyez sur la touche Entrée

💡 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 :

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

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

É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.

Étape 2 : Créez un nouveau nom.
Cliquez sur le bouton Nouveau.
Entrez un nom.
Exemple : RupeeToWords
É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 ))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 :
Appuyez sur la touche Entrée.

👀 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.
Étape 1. Sélectionnez les cellules que vous souhaitez convertir.

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

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

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

😁 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 :

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
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.





- 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