Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

conversion en lettres de valeurs calculées en chiffres

4 réponses
Avatar
mcn
Cherche fonction sous excel (si existe) de conversion en lettres, de valeurs
calculées en chiffres

4 réponses

Avatar
FxM
Cherche fonction sous excel (si existe) de conversion en lettres, de valeurs
calculées en chiffres


Bonjour à toi aussi

http://faq.outlook.free.fr/cdo/bonjour_cdo

De rien et @+
FxM

Avatar
JLuc
--
____
( O | O )
--
_oooO_ JLuc _Oooo_

O-O
Avatar
RV
Bonjour,
Voici ce que j'ai en ma possession dans ma macrothèque.
Je n'en connais pas l'auteur mais remercions le ...
Copier ce code dans un module standard du classeur et cette formule dans une
cellule =EurEnLettres(A1) où le chiffre est en A1.
Cordialement
Hervé


Function NBenLettres(NB) As String
On Error GoTo NBenLettres_suite

'
Dim Varnum As Long
Dim varnumD, varnumU, varlet, résultat
'
'varnum : pour stocker les parties du nombre que l'on va découper
'varlet : pour stocker la conversion en lettres d'une partie du
nombre
'varnumD : pour stocker la partie dizaine d'un nombre à 2 chiffres
'varnumU : pour stocker la partie unité d'un nombre à 2 chiffres
'résultat : pour stocker les résultats intermédiaires des différentes
étapes
'
Static chiffre(1 To 19) '*** tableau contenant le nom des 16 premiers
nombres en lettres
chiffre(1) = "un"
chiffre(2) = "deux"
chiffre(3) = "trois"
chiffre(4) = "quatre"
chiffre(5) = "cinq"
chiffre(6) = "six"
chiffre(7) = "sept"
chiffre(8) = "huit"
chiffre(9) = "neuf"
chiffre(10) = "dix"
chiffre(11) = "onze"
chiffre(12) = "douze"
chiffre(13) = "treize"
chiffre(14) = "quatorze"
chiffre(15) = "quinze"
chiffre(16) = "seize"
chiffre(17) = "dix-sept"
chiffre(18) = "dix-huit"
chiffre(19) = "dix-neuf"
Static dizaine(1 To 8) '*** tableau contenant les noms des dizaines
dizaine(1) = "dix"
dizaine(2) = "vingt"
dizaine(3) = "trente"
dizaine(4) = "quarante"
dizaine(5) = "cinquante"
dizaine(6) = "soixante"
dizaine(8) = "quatre-vingt"
'
'*** Traitement du cas zéro franc
If NB >= 1 Then
résultat = ""
Else
résultat = "zéro"
GoTo fintraitementfrancs
End If

'*** Traitement des milliards
Varnum = Int(NB / 1000000000)
If Varnum > 0 Then
GoSub centaine_dizaine
résultat = varlet + " milliard"
If varlet <> "un" Then résultat = résultat + "s"
End If

'*** Traitement des millions
Varnum = Int(PMod(NB, 1000000000)) 'Int(NB) Mod 1000000000
Varnum = Int(Varnum / 1000000)
If Varnum > 0 Then
GoSub centaine_dizaine
résultat = résultat + " " + varlet + " million"
If varlet <> "un" Then résultat = résultat + "s"
End If
'
'*** Traitement des milliers
Varnum = Int(PMod(NB, 1000000))
Varnum = Int(Varnum / 1000)
If Varnum > 0 Then
GoSub centaine_dizaine
If varlet <> "un" Then résultat = résultat + " " + varlet
résultat = résultat + " mille"
End If
'
'*** Traitement des centaines et dizaines
Varnum = Int(PMod(NB, 1000)) 'Int(NB) Mod 1000
If Varnum > 0 Then
GoSub centaine_dizaine
résultat = résultat + " " + varlet
End If
résultat = LTrim(résultat)
varlet = Right$(résultat, 4)
'
'*** Traitement du "s" final pour vingt et cent et du "de" pour million
Select Case varlet
Case "cent", "ingt"
If Len(résultat) > 5 Then
résultat = résultat + "s"
End If
Case "lion", "ions", "iard", "ards"
résultat = résultat + " de"
End Select
fintraitementfrancs: '*** Etiquette de branchement pour le cas "zéro franc"
'
'*** Indication du terme franc
résultat = résultat + " franc"
If NB >= 2 Then résultat = résultat + "s"
'
'*** Traitement des centimes
Varnum = Int((NB - Int(NB)) * 100 + 0.5) '*** On additionne 0,5
'*** afin de compenser
'*** les erreurs de calcul
'*** dues aux arrondis
If Varnum > 0 Then
GoSub centaine_dizaine
résultat = résultat + " et " + varlet + " centime"
If Varnum > 1 Then résultat = résultat + "s"
End If
'
'*** Conversion 1ère lettre en majuscule
résultat = UCase(Left(résultat, 1)) + Right(résultat, Len(résultat) - 1)
'
'*** renvoie du résultat de la fonction et fin de la fonction
NBenLettres = résultat
Exit Function
NBenLettres_Fin:
Exit Function

'
centaine_dizaine: '*** Sous-programme de conversion en lettres
'*** des centaines et dizaines
varlet = ""
'
'*** Traitement des centaines
If Varnum >= 100 Then
varlet = chiffre(Int(Varnum / 100))
Varnum = Varnum Mod 100
If varlet = "un" Then
varlet = "cent "
Else
varlet = varlet + " cent "
End If
End If
'
'*** Traitement des dizaines
If Varnum <= 19 Then '*** Cas où la dizaine est <20
If Varnum > 0 Then varlet = varlet + chiffre(Varnum)
Else '*** Autres cas
varnumD = Int(Varnum / 10) '*** chiffre des dizaines
varnumU = Varnum Mod 10 '*** chiffre des unités
Select Case varnumD '*** génération des dizaines en lettres
Case Is <= 5
varlet = varlet + dizaine(varnumD)
Case 6, 7
varlet = varlet + dizaine(6)
Case 8, 9
varlet = varlet + dizaine(8)
End Select
'
'*** traitement du séparateur des dizaines et unités
If varnumU = 1 And varnumD < 8 Then
varlet = varlet + " et "
Else
If varnumU <> 0 Or varnumD = 7 Or varnumD = 9 Then
varlet = varlet + "-"
End If
End If
'*** génération des unités
If varnumD = 7 Or varnumD = 9 Then varnumU = varnumU + 10
If varnumU <> 0 Then varlet = varlet + chiffre(varnumU)
End If
'
'*** Suppression des espaces à gauche et retour
varlet = RTrim(varlet)
Return



NBenLettres_suite:
NBenLettres = ""
Resume NBenLettres_Fin
End Function


Function PMod(V As Variant, D) As Variant
Dim R As Variant
Dim M As Variant
R = Int(V / D)
M = R * D
PMod = V - M
End Function
Function FrancEuro(F As Variant) As Double
FrancEuro = Arrondir(F / 6.55957, 2)
End Function
Function EurEnLettres(NB) As String
On Error GoTo EurEnLettres_suite
'
Dim Varnum As Long
Dim varnumD, varnumU, varlet, résultat
'
'varnum : pour stocker les parties du nombre que l'on va découper
'varlet : pour stocker la conversion en lettres d'une partie du
nombre
'varnumD : pour stocker la partie dizaine d'un nombre à 2 chiffres
'varnumU : pour stocker la partie unité d'un nombre à 2 chiffres
'résultat : pour stocker les résultats intermédiaires des différentes
étapes
'
Static chiffre(1 To 19) '*** tableau contenant le nom des 16 premiers
nombres en lettres
chiffre(1) = "un"
chiffre(2) = "deux"
chiffre(3) = "trois"
chiffre(4) = "quatre"
chiffre(5) = "cinq"
chiffre(6) = "six"
chiffre(7) = "sept"
chiffre(8) = "huit"
chiffre(9) = "neuf"
chiffre(10) = "dix"
chiffre(11) = "onze"
chiffre(12) = "douze"
chiffre(13) = "treize"
chiffre(14) = "quatorze"
chiffre(15) = "quinze"
chiffre(16) = "seize"
chiffre(17) = "dix-sept"
chiffre(18) = "dix-huit"
chiffre(19) = "dix-neuf"
Static dizaine(1 To 8) '*** tableau contenant les noms des dizaines
dizaine(1) = "dix"
dizaine(2) = "vingt"
dizaine(3) = "trente"
dizaine(4) = "quarante"
dizaine(5) = "cinquante"
dizaine(6) = "soixante"
dizaine(8) = "quatre-vingt"
'
'*** Traitement du cas zéro Euro
If NB >= 1 Then
résultat = ""
Else
résultat = "zéro"
GoTo fintraitementEuros
End If

'*** Traitement des milliards
Varnum = Int(NB / 1000000000)
If Varnum > 0 Then
GoSub centaine_dizaine
résultat = varlet + " milliard"
If varlet <> "un" Then résultat = résultat + "s"
End If

'*** Traitement des millions
Varnum = Int(PMod(NB, 1000000000)) 'Int(NB) Mod 1000000000
Varnum = Int(Varnum / 1000000)
If Varnum > 0 Then
GoSub centaine_dizaine
résultat = résultat + " " + varlet + " million"
If varlet <> "un" Then résultat = résultat + "s"
End If
'
'*** Traitement des milliers
Varnum = Int(PMod(NB, 1000000))
Varnum = Int(Varnum / 1000)
If Varnum > 0 Then
GoSub centaine_dizaine
If varlet <> "un" Then résultat = résultat + " " + varlet
résultat = résultat + " mille"
End If
'
'*** Traitement des centaines et dizaines
Varnum = Int(PMod(NB, 1000)) 'Int(NB) Mod 1000
If Varnum > 0 Then
GoSub centaine_dizaine
résultat = résultat + " " + varlet
End If
résultat = LTrim(résultat)
varlet = Right$(résultat, 4)
'
'*** Traitement du "s" final pour vingt et cent et du "de" pour million
Select Case varlet
Case "cent", "ingt"
If Len(résultat) > 5 Then
résultat = résultat + "s"
End If
Case "lion", "ions", "iard", "ards"
résultat = résultat + " d'"
End Select
fintraitementEuros: '*** Etiquette de branchement pour le cas "zéro Euro"
'
'*** Indication du terme Euro
résultat = résultat + " Euro"
If NB >= 2 Then résultat = résultat + "s"
'
'*** Traitement des Cents
Varnum = Int((NB - Int(NB)) * 100 + 0.5) '*** On additionne 0,5
'*** afin de compenser
'*** les erreurs de calcul
'*** dues aux arrondis
If Varnum > 0 Then
GoSub centaine_dizaine
résultat = résultat + " et " + varlet + " Cent"
If Varnum > 1 Then résultat = résultat + "s"
End If
'
'*** Conversion 1ère lettre en majuscule
résultat = UCase(Left(résultat, 1)) + Right(résultat, Len(résultat) - 1)
'
'*** renvoie du résultat de la fonction et fin de la fonction
EurEnLettres = résultat
Exit Function
EurEnLettres_Fin:
Exit Function

'
centaine_dizaine: '*** Sous-programme de conversion en lettres
'*** des centaines et dizaines
varlet = ""
'
'*** Traitement des centaines
If Varnum >= 100 Then
varlet = chiffre(Int(Varnum / 100))
Varnum = Varnum Mod 100
If varlet = "un" Then
varlet = "cent "
Else
varlet = varlet + " cent "
End If
End If
'
'*** Traitement des dizaines
If Varnum <= 19 Then '*** Cas où la dizaine est <20
If Varnum > 0 Then varlet = varlet + chiffre(Varnum)
Else '*** Autres cas
varnumD = Int(Varnum / 10) '*** chiffre des dizaines
varnumU = Varnum Mod 10 '*** chiffre des unités
Select Case varnumD '*** génération des dizaines en lettres
Case Is <= 5
varlet = varlet + dizaine(varnumD)
Case 6, 7
varlet = varlet + dizaine(6)
Case 8, 9
varlet = varlet + dizaine(8)
End Select
'
'*** traitement du séparateur des dizaines et unités
If varnumU = 1 And varnumD < 8 Then
varlet = varlet + " et "
Else
If varnumU <> 0 Or varnumD = 7 Or varnumD = 9 Then
varlet = varlet + "-"
End If
End If
'*** génération des unités
If varnumD = 7 Or varnumD = 9 Then varnumU = varnumU + 10
If varnumU <> 0 Then varlet = varlet + chiffre(varnumU)
End If
'
'*** Suppression des espaces à gauche et retour
varlet = RTrim(varlet)
Return

EurEnLettres_suite:
EurEnLettres = ""
Resume EurEnLettres_Fin
End Function

Function Arrondir(N As Variant, NBDECI As Integer) As Double
If IsNull(N) Then
Arrondir = 0
Exit Function
End If
Arrondir = Int((N * 10 ^ NBDECI) + 0.5) / (10 ^ NBDECI)
End Function







"mcn" a écrit dans le message de news:

Cherche fonction sous excel (si existe) de conversion en lettres, de
valeurs
calculées en chiffres


Avatar
RV
mcn,
J'oubliais un petit truc utile(précision), si tu copies ce code dans un
classeur sans donnée et que tu enregistres ce classeur au format .xla, tu
pourras avoir accès à cette fonction depuis n'importe quel autre classeur
sur ton micro.
Pour ce faire, après enregistrement faire:
outils/macro/macros complémentaires/parcourir(pour aller chercher le fichier
nouvellement enregistré en xla)/ok
Ensuite depuis n'importe quel classeur tu appelleras la fonction avec la
formule qu'il te faudra adapter à tes besoins:
=EurEnLettres(A1)
Bonne soirée
RV


"RV" a écrit dans le message de news:
uE$
Bonjour,
Voici ce que j'ai en ma possession dans ma macrothèque.
Je n'en connais pas l'auteur mais remercions le ...
Copier ce code dans un module standard du classeur et cette formule dans
une cellule =EurEnLettres(A1) où le chiffre est en A1.
Cordialement
Hervé


Function NBenLettres(NB) As String
On Error GoTo NBenLettres_suite

'
Dim Varnum As Long
Dim varnumD, varnumU, varlet, résultat
'
'varnum : pour stocker les parties du nombre que l'on va découper
'varlet : pour stocker la conversion en lettres d'une partie du
nombre
'varnumD : pour stocker la partie dizaine d'un nombre à 2 chiffres
'varnumU : pour stocker la partie unité d'un nombre à 2 chiffres
'résultat : pour stocker les résultats intermédiaires des différentes
étapes
'
Static chiffre(1 To 19) '*** tableau contenant le nom des 16 premiers
nombres en lettres
chiffre(1) = "un"
chiffre(2) = "deux"
chiffre(3) = "trois"
chiffre(4) = "quatre"
chiffre(5) = "cinq"
chiffre(6) = "six"
chiffre(7) = "sept"
chiffre(8) = "huit"
chiffre(9) = "neuf"
chiffre(10) = "dix"
chiffre(11) = "onze"
chiffre(12) = "douze"
chiffre(13) = "treize"
chiffre(14) = "quatorze"
chiffre(15) = "quinze"
chiffre(16) = "seize"
chiffre(17) = "dix-sept"
chiffre(18) = "dix-huit"
chiffre(19) = "dix-neuf"
Static dizaine(1 To 8) '*** tableau contenant les noms des dizaines
dizaine(1) = "dix"
dizaine(2) = "vingt"
dizaine(3) = "trente"
dizaine(4) = "quarante"
dizaine(5) = "cinquante"
dizaine(6) = "soixante"
dizaine(8) = "quatre-vingt"
'
'*** Traitement du cas zéro franc
If NB >= 1 Then
résultat = ""
Else
résultat = "zéro"
GoTo fintraitementfrancs
End If

'*** Traitement des milliards
Varnum = Int(NB / 1000000000)
If Varnum > 0 Then
GoSub centaine_dizaine
résultat = varlet + " milliard"
If varlet <> "un" Then résultat = résultat + "s"
End If

'*** Traitement des millions
Varnum = Int(PMod(NB, 1000000000)) 'Int(NB) Mod 1000000000
Varnum = Int(Varnum / 1000000)
If Varnum > 0 Then
GoSub centaine_dizaine
résultat = résultat + " " + varlet + " million"
If varlet <> "un" Then résultat = résultat + "s"
End If
'
'*** Traitement des milliers
Varnum = Int(PMod(NB, 1000000))
Varnum = Int(Varnum / 1000)
If Varnum > 0 Then
GoSub centaine_dizaine
If varlet <> "un" Then résultat = résultat + " " + varlet
résultat = résultat + " mille"
End If
'
'*** Traitement des centaines et dizaines
Varnum = Int(PMod(NB, 1000)) 'Int(NB) Mod 1000
If Varnum > 0 Then
GoSub centaine_dizaine
résultat = résultat + " " + varlet
End If
résultat = LTrim(résultat)
varlet = Right$(résultat, 4)
'
'*** Traitement du "s" final pour vingt et cent et du "de" pour million
Select Case varlet
Case "cent", "ingt"
If Len(résultat) > 5 Then
résultat = résultat + "s"
End If
Case "lion", "ions", "iard", "ards"
résultat = résultat + " de"
End Select
fintraitementfrancs: '*** Etiquette de branchement pour le cas "zéro
franc"
'
'*** Indication du terme franc
résultat = résultat + " franc"
If NB >= 2 Then résultat = résultat + "s"
'
'*** Traitement des centimes
Varnum = Int((NB - Int(NB)) * 100 + 0.5) '*** On additionne 0,5
'*** afin de compenser
'*** les erreurs de calcul
'*** dues aux arrondis
If Varnum > 0 Then
GoSub centaine_dizaine
résultat = résultat + " et " + varlet + " centime"
If Varnum > 1 Then résultat = résultat + "s"
End If
'
'*** Conversion 1ère lettre en majuscule
résultat = UCase(Left(résultat, 1)) + Right(résultat, Len(résultat) -
1)
'
'*** renvoie du résultat de la fonction et fin de la fonction
NBenLettres = résultat
Exit Function
NBenLettres_Fin:
Exit Function

'
centaine_dizaine: '*** Sous-programme de conversion en lettres
'*** des centaines et dizaines
varlet = ""
'
'*** Traitement des centaines
If Varnum >= 100 Then
varlet = chiffre(Int(Varnum / 100))
Varnum = Varnum Mod 100
If varlet = "un" Then
varlet = "cent "
Else
varlet = varlet + " cent "
End If
End If
'
'*** Traitement des dizaines
If Varnum <= 19 Then '*** Cas où la dizaine est <20
If Varnum > 0 Then varlet = varlet + chiffre(Varnum)
Else '*** Autres cas
varnumD = Int(Varnum / 10) '*** chiffre des dizaines
varnumU = Varnum Mod 10 '*** chiffre des unités
Select Case varnumD '*** génération des dizaines en lettres
Case Is <= 5
varlet = varlet + dizaine(varnumD)
Case 6, 7
varlet = varlet + dizaine(6)
Case 8, 9
varlet = varlet + dizaine(8)
End Select
'
'*** traitement du séparateur des dizaines et unités
If varnumU = 1 And varnumD < 8 Then
varlet = varlet + " et "
Else
If varnumU <> 0 Or varnumD = 7 Or varnumD = 9 Then
varlet = varlet + "-"
End If
End If
'*** génération des unités
If varnumD = 7 Or varnumD = 9 Then varnumU = varnumU + 10
If varnumU <> 0 Then varlet = varlet + chiffre(varnumU)
End If
'
'*** Suppression des espaces à gauche et retour
varlet = RTrim(varlet)
Return



NBenLettres_suite:
NBenLettres = ""
Resume NBenLettres_Fin
End Function


Function PMod(V As Variant, D) As Variant
Dim R As Variant
Dim M As Variant
R = Int(V / D)
M = R * D
PMod = V - M
End Function
Function FrancEuro(F As Variant) As Double
FrancEuro = Arrondir(F / 6.55957, 2)
End Function
Function EurEnLettres(NB) As String
On Error GoTo EurEnLettres_suite
'
Dim Varnum As Long
Dim varnumD, varnumU, varlet, résultat
'
'varnum : pour stocker les parties du nombre que l'on va découper
'varlet : pour stocker la conversion en lettres d'une partie du
nombre
'varnumD : pour stocker la partie dizaine d'un nombre à 2 chiffres
'varnumU : pour stocker la partie unité d'un nombre à 2 chiffres
'résultat : pour stocker les résultats intermédiaires des différentes
étapes
'
Static chiffre(1 To 19) '*** tableau contenant le nom des 16 premiers
nombres en lettres
chiffre(1) = "un"
chiffre(2) = "deux"
chiffre(3) = "trois"
chiffre(4) = "quatre"
chiffre(5) = "cinq"
chiffre(6) = "six"
chiffre(7) = "sept"
chiffre(8) = "huit"
chiffre(9) = "neuf"
chiffre(10) = "dix"
chiffre(11) = "onze"
chiffre(12) = "douze"
chiffre(13) = "treize"
chiffre(14) = "quatorze"
chiffre(15) = "quinze"
chiffre(16) = "seize"
chiffre(17) = "dix-sept"
chiffre(18) = "dix-huit"
chiffre(19) = "dix-neuf"
Static dizaine(1 To 8) '*** tableau contenant les noms des dizaines
dizaine(1) = "dix"
dizaine(2) = "vingt"
dizaine(3) = "trente"
dizaine(4) = "quarante"
dizaine(5) = "cinquante"
dizaine(6) = "soixante"
dizaine(8) = "quatre-vingt"
'
'*** Traitement du cas zéro Euro
If NB >= 1 Then
résultat = ""
Else
résultat = "zéro"
GoTo fintraitementEuros
End If

'*** Traitement des milliards
Varnum = Int(NB / 1000000000)
If Varnum > 0 Then
GoSub centaine_dizaine
résultat = varlet + " milliard"
If varlet <> "un" Then résultat = résultat + "s"
End If

'*** Traitement des millions
Varnum = Int(PMod(NB, 1000000000)) 'Int(NB) Mod 1000000000
Varnum = Int(Varnum / 1000000)
If Varnum > 0 Then
GoSub centaine_dizaine
résultat = résultat + " " + varlet + " million"
If varlet <> "un" Then résultat = résultat + "s"
End If
'
'*** Traitement des milliers
Varnum = Int(PMod(NB, 1000000))
Varnum = Int(Varnum / 1000)
If Varnum > 0 Then
GoSub centaine_dizaine
If varlet <> "un" Then résultat = résultat + " " + varlet
résultat = résultat + " mille"
End If
'
'*** Traitement des centaines et dizaines
Varnum = Int(PMod(NB, 1000)) 'Int(NB) Mod 1000
If Varnum > 0 Then
GoSub centaine_dizaine
résultat = résultat + " " + varlet
End If
résultat = LTrim(résultat)
varlet = Right$(résultat, 4)
'
'*** Traitement du "s" final pour vingt et cent et du "de" pour million
Select Case varlet
Case "cent", "ingt"
If Len(résultat) > 5 Then
résultat = résultat + "s"
End If
Case "lion", "ions", "iard", "ards"
résultat = résultat + " d'"
End Select
fintraitementEuros: '*** Etiquette de branchement pour le cas "zéro Euro"
'
'*** Indication du terme Euro
résultat = résultat + " Euro"
If NB >= 2 Then résultat = résultat + "s"
'
'*** Traitement des Cents
Varnum = Int((NB - Int(NB)) * 100 + 0.5) '*** On additionne 0,5
'*** afin de compenser
'*** les erreurs de calcul
'*** dues aux arrondis
If Varnum > 0 Then
GoSub centaine_dizaine
résultat = résultat + " et " + varlet + " Cent"
If Varnum > 1 Then résultat = résultat + "s"
End If
'
'*** Conversion 1ère lettre en majuscule
résultat = UCase(Left(résultat, 1)) + Right(résultat, Len(résultat) -
1)
'
'*** renvoie du résultat de la fonction et fin de la fonction
EurEnLettres = résultat
Exit Function
EurEnLettres_Fin:
Exit Function

'
centaine_dizaine: '*** Sous-programme de conversion en lettres
'*** des centaines et dizaines
varlet = ""
'
'*** Traitement des centaines
If Varnum >= 100 Then
varlet = chiffre(Int(Varnum / 100))
Varnum = Varnum Mod 100
If varlet = "un" Then
varlet = "cent "
Else
varlet = varlet + " cent "
End If
End If
'
'*** Traitement des dizaines
If Varnum <= 19 Then '*** Cas où la dizaine est <20
If Varnum > 0 Then varlet = varlet + chiffre(Varnum)
Else '*** Autres cas
varnumD = Int(Varnum / 10) '*** chiffre des dizaines
varnumU = Varnum Mod 10 '*** chiffre des unités
Select Case varnumD '*** génération des dizaines en lettres
Case Is <= 5
varlet = varlet + dizaine(varnumD)
Case 6, 7
varlet = varlet + dizaine(6)
Case 8, 9
varlet = varlet + dizaine(8)
End Select
'
'*** traitement du séparateur des dizaines et unités
If varnumU = 1 And varnumD < 8 Then
varlet = varlet + " et "
Else
If varnumU <> 0 Or varnumD = 7 Or varnumD = 9 Then
varlet = varlet + "-"
End If
End If
'*** génération des unités
If varnumD = 7 Or varnumD = 9 Then varnumU = varnumU + 10
If varnumU <> 0 Then varlet = varlet + chiffre(varnumU)
End If
'
'*** Suppression des espaces à gauche et retour
varlet = RTrim(varlet)
Return

EurEnLettres_suite:
EurEnLettres = ""
Resume EurEnLettres_Fin
End Function

Function Arrondir(N As Variant, NBDECI As Integer) As Double
If IsNull(N) Then
Arrondir = 0
Exit Function
End If
Arrondir = Int((N * 10 ^ NBDECI) + 0.5) / (10 ^ NBDECI)
End Function







"mcn" a écrit dans le message de news:

Cherche fonction sous excel (si existe) de conversion en lettres, de
valeurs
calculées en chiffres