comment fait-on en excel pour transformer un nombre en chiffres d'une
cellule
et en lettres dans une autre cellule
comment fait-on en excel pour transformer un nombre en chiffres d'une
cellule
et en lettres dans une autre cellule
comment fait-on en excel pour transformer un nombre en chiffres d'une
cellule
et en lettres dans une autre cellule
Bonjour,
Une façon de faire :
Tu copies cette fonction dans un module standard de ton classeur:
Pour ce faire, tu ouvres l'éditeur de code Raccourci clavier : Alt + F11
Barre de menu / insertion / Module
et dans la feuille qui s'ajoute, tu insères la fonction suivante :
Plus bas, tu as un exemple comment appeler cette fonction en VBA ou
à partir d'une cellule du classeur.
'---------------------------------------------------
Function NumText(Nombre As Currency, Optional Unité As String, _
Optional SousUnité As String, Optional no_chiff res As Integer, _
Optional Separateur As String) As String
Dim PartieEntière As Currency, PartieDécimal As Currency
Dim TxtEntier As String, TxtDécimal As String
PartieEntière = Int(Nombre)
TxtEntier = NumTextEntier(PartieEntière)
If no_chiffres > 0 Then
PartieDécimal = (Nombre - PartieEntière) * 10 ^ no_ chiffres
TxtDécimal = Format(PartieDécimal, String(no_chiffr es, "0"))
End If
NumText = TxtEntier & Unité & Separateur & TxtDécimal & " " & SousUnité
End Function
Function NumTextEntier(ByVal Entier As Currency) As String
Dim no_Classe As Integer, Classe As Integer
If Entier = 0 Then
NumTextEntier = "Zéro "
Else
While Entier > 0
Classe = Entier - Int(Entier / 1000) * 1000
NumTextEntier = TxtClasse(Classe, no_Classe) & NumTextEntier
no_Classe = no_Classe + 1
Entier = Int(Entier / 1000)
Wend
End If
End Function
Function TxtClasse(Classe As Integer, no_Classe As Integer) As String
Dim Centaine As Integer, Dizaine As Integer, Unité As Integer, Unités2Chiffres As
Integer
Dim TxtCentaines As String, TxtDizaines As String, TxtUnités As String
Dim TClasses As Variant, Tdizaines As Variant, TUnités As Varia nt
TClasses = Array("", "mille", "million", "milliard", "billion")
Tdizaines = Array("", "", "vingt", "trente", "quarante", "cinqu ante", "soixante",
"soixante", "quatre-vingt", "quatre-vingt")
TUnités = Array("", "un", "deux", "trois", "quatre", "cinq", "six", "sept", "huit",
"neuf", _
"dix", "onze", "douze", "treize", "quatorze", "quinze", " seize", "dix-sept",
"dix-huit", "dix-neuf")
If Classe = 0 Then Exit Function
' Pas de un pour mille
If Classe = 1 And no_Classe = 1 Then
TxtClasse = "mille "
Exit Function
End If
Centaine = Classe 100
Unités2Chiffres = Classe Mod 100
Dizaine = Unités2Chiffres 10
Unité = Unités2Chiffres Mod 10
' Les centaines -----
If Centaine = 1 Then
TxtCentaines = "cent "
ElseIf Centaine > 1 Then
TxtCentaines = TUnités(Centaine) & " cent" & IIf(Unit és2Chiffres > 0, " ", "s ")
End If
' Les dizaines ------
TxtDizaines = Tdizaines(Dizaine)
If Unité = 1 And Dizaine > 1 And Dizaine < 8 Then
TxtDizaines = TxtDizaines & "-et"
End If
If Dizaine = 1 Or Dizaine = 7 Or Dizaine = 9 Then
Unité = Unité + 10: Dizaine = 0
End If
TxtDizaines = TxtDizaines & IIf(Unités2Chiffres = 80, "s", "")
If Unités2Chiffres > 19 And Unité > 0 Then
TxtDizaines = TxtDizaines & "-"
ElseIf Dizaine > 0 Then
TxtDizaines = TxtDizaines & " "
End If
' Les unités -------- Espace si unité > 0
TxtUnités = TUnités(Unité) & IIf(Unité > 0, " ", "")
' La classe --------- un s sauf pour mille
TxtClasse = TClasses(no_Classe) & IIf(no_Classe > 1 And Classe > 1, "s", "") &
IIf(no_Classe > 0, " ", "")
' Résultat ----------
TxtClasse = TxtCentaines & TxtDizaines & TxtUnités & TxtClass e
End Function
'---------------------------------------------------
Sub Exemple()
' "deux cent cinquante-six mille trois cent vingt-quatre"
MsgBox NumText(256324)
'"quatre cent trente francs et 50 centimes"
MsgBox NumText(1430569125.5, "Dollars", "cents", 2, " et ")
'
MsgBox NumText(430.5, "francs", "centimes", 2, " et ")
'"quatre cent trente francs 50 centimes"
MsgBox NumText(430.5, "francs", "centimes", 2, " ")
End Sub
'---------------------------------------------------
Dans une cellule : =NumText(B2;;;2;"et ")
"alma0217" a écrit dans le message de groupe de
discussion :
comment fait-on en excel pour transformer un nombre en chiffres d'une cel lule
et en lettres dans une autre cellule
Bonjour,
Une façon de faire :
Tu copies cette fonction dans un module standard de ton classeur:
Pour ce faire, tu ouvres l'éditeur de code Raccourci clavier : Alt + F11
Barre de menu / insertion / Module
et dans la feuille qui s'ajoute, tu insères la fonction suivante :
Plus bas, tu as un exemple comment appeler cette fonction en VBA ou
à partir d'une cellule du classeur.
'---------------------------------------------------
Function NumText(Nombre As Currency, Optional Unité As String, _
Optional SousUnité As String, Optional no_chiff res As Integer, _
Optional Separateur As String) As String
Dim PartieEntière As Currency, PartieDécimal As Currency
Dim TxtEntier As String, TxtDécimal As String
PartieEntière = Int(Nombre)
TxtEntier = NumTextEntier(PartieEntière)
If no_chiffres > 0 Then
PartieDécimal = (Nombre - PartieEntière) * 10 ^ no_ chiffres
TxtDécimal = Format(PartieDécimal, String(no_chiffr es, "0"))
End If
NumText = TxtEntier & Unité & Separateur & TxtDécimal & " " & SousUnité
End Function
Function NumTextEntier(ByVal Entier As Currency) As String
Dim no_Classe As Integer, Classe As Integer
If Entier = 0 Then
NumTextEntier = "Zéro "
Else
While Entier > 0
Classe = Entier - Int(Entier / 1000) * 1000
NumTextEntier = TxtClasse(Classe, no_Classe) & NumTextEntier
no_Classe = no_Classe + 1
Entier = Int(Entier / 1000)
Wend
End If
End Function
Function TxtClasse(Classe As Integer, no_Classe As Integer) As String
Dim Centaine As Integer, Dizaine As Integer, Unité As Integer, Unités2Chiffres As
Integer
Dim TxtCentaines As String, TxtDizaines As String, TxtUnités As String
Dim TClasses As Variant, Tdizaines As Variant, TUnités As Varia nt
TClasses = Array("", "mille", "million", "milliard", "billion")
Tdizaines = Array("", "", "vingt", "trente", "quarante", "cinqu ante", "soixante",
"soixante", "quatre-vingt", "quatre-vingt")
TUnités = Array("", "un", "deux", "trois", "quatre", "cinq", "six", "sept", "huit",
"neuf", _
"dix", "onze", "douze", "treize", "quatorze", "quinze", " seize", "dix-sept",
"dix-huit", "dix-neuf")
If Classe = 0 Then Exit Function
' Pas de un pour mille
If Classe = 1 And no_Classe = 1 Then
TxtClasse = "mille "
Exit Function
End If
Centaine = Classe 100
Unités2Chiffres = Classe Mod 100
Dizaine = Unités2Chiffres 10
Unité = Unités2Chiffres Mod 10
' Les centaines -----
If Centaine = 1 Then
TxtCentaines = "cent "
ElseIf Centaine > 1 Then
TxtCentaines = TUnités(Centaine) & " cent" & IIf(Unit és2Chiffres > 0, " ", "s ")
End If
' Les dizaines ------
TxtDizaines = Tdizaines(Dizaine)
If Unité = 1 And Dizaine > 1 And Dizaine < 8 Then
TxtDizaines = TxtDizaines & "-et"
End If
If Dizaine = 1 Or Dizaine = 7 Or Dizaine = 9 Then
Unité = Unité + 10: Dizaine = 0
End If
TxtDizaines = TxtDizaines & IIf(Unités2Chiffres = 80, "s", "")
If Unités2Chiffres > 19 And Unité > 0 Then
TxtDizaines = TxtDizaines & "-"
ElseIf Dizaine > 0 Then
TxtDizaines = TxtDizaines & " "
End If
' Les unités -------- Espace si unité > 0
TxtUnités = TUnités(Unité) & IIf(Unité > 0, " ", "")
' La classe --------- un s sauf pour mille
TxtClasse = TClasses(no_Classe) & IIf(no_Classe > 1 And Classe > 1, "s", "") &
IIf(no_Classe > 0, " ", "")
' Résultat ----------
TxtClasse = TxtCentaines & TxtDizaines & TxtUnités & TxtClass e
End Function
'---------------------------------------------------
Sub Exemple()
' "deux cent cinquante-six mille trois cent vingt-quatre"
MsgBox NumText(256324)
'"quatre cent trente francs et 50 centimes"
MsgBox NumText(1430569125.5, "Dollars", "cents", 2, " et ")
'
MsgBox NumText(430.5, "francs", "centimes", 2, " et ")
'"quatre cent trente francs 50 centimes"
MsgBox NumText(430.5, "francs", "centimes", 2, " ")
End Sub
'---------------------------------------------------
Dans une cellule : =NumText(B2;;;2;"et ")
"alma0217" <alma0...@discussions.microsoft.com> a écrit dans le message de groupe de
discussion : 8F9F4D4C-EA11-4887-AC06-637F08EAD...@microsoft.com...
comment fait-on en excel pour transformer un nombre en chiffres d'une cel lule
et en lettres dans une autre cellule
Bonjour,
Une façon de faire :
Tu copies cette fonction dans un module standard de ton classeur:
Pour ce faire, tu ouvres l'éditeur de code Raccourci clavier : Alt + F11
Barre de menu / insertion / Module
et dans la feuille qui s'ajoute, tu insères la fonction suivante :
Plus bas, tu as un exemple comment appeler cette fonction en VBA ou
à partir d'une cellule du classeur.
'---------------------------------------------------
Function NumText(Nombre As Currency, Optional Unité As String, _
Optional SousUnité As String, Optional no_chiff res As Integer, _
Optional Separateur As String) As String
Dim PartieEntière As Currency, PartieDécimal As Currency
Dim TxtEntier As String, TxtDécimal As String
PartieEntière = Int(Nombre)
TxtEntier = NumTextEntier(PartieEntière)
If no_chiffres > 0 Then
PartieDécimal = (Nombre - PartieEntière) * 10 ^ no_ chiffres
TxtDécimal = Format(PartieDécimal, String(no_chiffr es, "0"))
End If
NumText = TxtEntier & Unité & Separateur & TxtDécimal & " " & SousUnité
End Function
Function NumTextEntier(ByVal Entier As Currency) As String
Dim no_Classe As Integer, Classe As Integer
If Entier = 0 Then
NumTextEntier = "Zéro "
Else
While Entier > 0
Classe = Entier - Int(Entier / 1000) * 1000
NumTextEntier = TxtClasse(Classe, no_Classe) & NumTextEntier
no_Classe = no_Classe + 1
Entier = Int(Entier / 1000)
Wend
End If
End Function
Function TxtClasse(Classe As Integer, no_Classe As Integer) As String
Dim Centaine As Integer, Dizaine As Integer, Unité As Integer, Unités2Chiffres As
Integer
Dim TxtCentaines As String, TxtDizaines As String, TxtUnités As String
Dim TClasses As Variant, Tdizaines As Variant, TUnités As Varia nt
TClasses = Array("", "mille", "million", "milliard", "billion")
Tdizaines = Array("", "", "vingt", "trente", "quarante", "cinqu ante", "soixante",
"soixante", "quatre-vingt", "quatre-vingt")
TUnités = Array("", "un", "deux", "trois", "quatre", "cinq", "six", "sept", "huit",
"neuf", _
"dix", "onze", "douze", "treize", "quatorze", "quinze", " seize", "dix-sept",
"dix-huit", "dix-neuf")
If Classe = 0 Then Exit Function
' Pas de un pour mille
If Classe = 1 And no_Classe = 1 Then
TxtClasse = "mille "
Exit Function
End If
Centaine = Classe 100
Unités2Chiffres = Classe Mod 100
Dizaine = Unités2Chiffres 10
Unité = Unités2Chiffres Mod 10
' Les centaines -----
If Centaine = 1 Then
TxtCentaines = "cent "
ElseIf Centaine > 1 Then
TxtCentaines = TUnités(Centaine) & " cent" & IIf(Unit és2Chiffres > 0, " ", "s ")
End If
' Les dizaines ------
TxtDizaines = Tdizaines(Dizaine)
If Unité = 1 And Dizaine > 1 And Dizaine < 8 Then
TxtDizaines = TxtDizaines & "-et"
End If
If Dizaine = 1 Or Dizaine = 7 Or Dizaine = 9 Then
Unité = Unité + 10: Dizaine = 0
End If
TxtDizaines = TxtDizaines & IIf(Unités2Chiffres = 80, "s", "")
If Unités2Chiffres > 19 And Unité > 0 Then
TxtDizaines = TxtDizaines & "-"
ElseIf Dizaine > 0 Then
TxtDizaines = TxtDizaines & " "
End If
' Les unités -------- Espace si unité > 0
TxtUnités = TUnités(Unité) & IIf(Unité > 0, " ", "")
' La classe --------- un s sauf pour mille
TxtClasse = TClasses(no_Classe) & IIf(no_Classe > 1 And Classe > 1, "s", "") &
IIf(no_Classe > 0, " ", "")
' Résultat ----------
TxtClasse = TxtCentaines & TxtDizaines & TxtUnités & TxtClass e
End Function
'---------------------------------------------------
Sub Exemple()
' "deux cent cinquante-six mille trois cent vingt-quatre"
MsgBox NumText(256324)
'"quatre cent trente francs et 50 centimes"
MsgBox NumText(1430569125.5, "Dollars", "cents", 2, " et ")
'
MsgBox NumText(430.5, "francs", "centimes", 2, " et ")
'"quatre cent trente francs 50 centimes"
MsgBox NumText(430.5, "francs", "centimes", 2, " ")
End Sub
'---------------------------------------------------
Dans une cellule : =NumText(B2;;;2;"et ")
"alma0217" a écrit dans le message de groupe de
discussion :
comment fait-on en excel pour transformer un nombre en chiffres d'une cel lule
et en lettres dans une autre cellule