Attribute VB_Name = "ChiffresEnLettresJPPastinelli" Function Chiffres_à_Lettres(nombre) 'JP Pastinelli, mpfe Chiffres_à_Lettres = "" virg = InStr(1, nombre, ",") 'instruction à modifier si "." décimal au lieu de ",") entier = Left(nombre, virg - 1) fraction = Left(Right(nombre, Len(nombre) - virg), 2) ztranche = Round(Len(entier) / 3, 0) If ztranche * 3 < Len(entier) Then ztranche = ztranche + 1 End If entier = Right("000" & entier, (3 * (ztranche))) If (ztranche * 3 <> Len(entier)) Then z = 10 / 0 For itranche = ztranche To 1 Step -1 If itranche = 1 Then unit = "" If itranche = 2 Then unit = "mille" If itranche = 3 Then unit = "million" If itranche = 4 Then unit = "milliard" If itranche = 5 Then unit = "billion" If itranche = 6 Then unit = "mille billions" If itranche = 7 Then unit = "trillion" If itranche = 8 Then unit = "mille trillions" If itranche = 9 Then unit = "quatrillion" If itranche = 10 Then unit = "mille quatrillions" tranche = Mid(entier, 1 + 3 * (ztranche - itranche), 3) If ((0 + tranche) <> 1) And (itranche = 3 Or itranche = 4 Or _ itranche = 5 Or itranche = 7 Or itranche = 9) Then unit = unit & "s" ztrad = TradChaLet(tranche) If Trim(ztrad) = "zéro" Then Chiffres_à_Lettres = Chiffres_à_Lettres If Trim(ztrad) = "un" And Trim(unit) = "mille" Then _ Chiffres_à_Lettres = Chiffres_à_Lettres & " " & unit If Trim(ztrad) = "un" And Trim(unit) <> "mille" Then _ Chiffres_à_Lettres = Chiffres_à_Lettres & " " & ztrad & " " & unit If Not (Trim(ztrad) = "zéro" Or Trim(ztrad) = "un") Then _ Chiffres_à_Lettres = Chiffres_à_Lettres & " " & ztrad & " " & unit Next itranche ' Dans la ligne finale.... selon les besoins... ' remplacer "VIRGULE" par "Francs" ou "Euros" ou "Dollards" ' remplacer "CENTIÈMES" par "centimes" ou "cents" Chiffres_à_Lettres = Trim(Chiffres_à_Lettres & " VIRGULE " & _ TradChaLet("0" & fraction) & " CENTIÈMES ") End Function Function TradChaLet(tr3) Dim chiffres(20) As String chiffres(0) = "zéro" chiffres(1) = "un" chiffres(2) = "deux" chiffres(3) = "trois" chiffres(4) = "quatre" chiffres(5) = "cinq" chiffres(6) = "six" chiffres(7) = "sept" chiffres(8) = "huit" chiffres(9) = "neuf" chiffres(10) = "dix" chiffres(11) = "onze" chiffres(12) = "douze" chiffres(13) = "treize" chiffres(14) = "quatorze" chiffres(15) = "quinze" chiffres(16) = "seize" chiffres(17) = "dix-sept" chiffres(18) = "dix-huit" chiffres(19) = "dix-neuf" ' traduction des centaines Select Case tr3 + 0 Case 0 TradChaLet = "zéro" Case Else z1 = Left(tr3, 1) dz = Right(tr3, 2) z2 = Right(Left(tr3, 2), 1) z3 = Right(tr3, 1) Select Case z1 Case "0" TradChaLet = "" Case "1" TradChaLet = "" Case Else TradChaLet = chiffres(0 + z1) End Select ' Case z1 If z1 = 0 Then TradChaLet = TradChaLet If z1 = 1 Then TradChaLet = TradChaLet & " " & "cent " If z1 > 1 Then TradChaLet = TradChaLet & " " & "cents " ' traduction des dizaines et unités Select Case dz Case "0" TradChaLet = TradChaLet & " " Case "10" TradChaLet = TradChaLet & " dix" Case "11" TradChaLet = TradChaLet & " onze" Case "12" TradChaLet = TradChaLet & " douze" Case "13" TradChaLet = TradChaLet & " treize" Case "14" TradChaLet = TradChaLet & " quatorze" Case "15" TradChaLet = TradChaLet & " quinze" Case "16" TradChaLet = TradChaLet & " seize" Case "17" TradChaLet = TradChaLet & " dix-sept" Case "18" TradChaLet = TradChaLet & " dix-huit" Case "19" TradChaLet = TradChaLet & " dix-neuf" Case Else If (z2 = 2 Or z2 = 3 Or z2 = 4 Or z2 = 5 Or z2 = 6 Or z2 = 8) Then If z2 = 2 Then TradChaLet = TradChaLet & " vingt" If z2 = 3 Then TradChaLet = TradChaLet & " trente" If z2 = 4 Then TradChaLet = TradChaLet & " quarante" If z2 = 5 Then TradChaLet = TradChaLet & " cinquante" If z2 = 6 Then TradChaLet = TradChaLet & " soixante" If z2 = 8 Then TradChaLet = TradChaLet & " quatre-vingt" If z3 = 1 Then TradChaLet = TradChaLet & " et " & chiffres(z3) If z3 <> 1 Then TradChaLet = TradChaLet & " " & chiffres(z3) Else Select Case z2 Case "7" TradChaLet = TradChaLet & " soixante" Case "9" TradChaLet = TradChaLet & " quatre-vingt" End Select 'Case z2 If (z2 <> 0 And z3 = 1) Then TradChaLet = TradChaLet & " et " & chiffres(10 + z3) If (z2 <> 0 And z3 <> 1) Then TradChaLet = TradChaLet & " " & chiffres(10 + z3) If (z2 = 0 And z3 <> 0) Then TradChaLet = TradChaLet & " " & chiffres(z3) End If End Select ' Case dz End Select 'Case tr3 + 0 End Function