Chiffre en lettre

Fermé
bouchra - 28 déc. 2011 à 16:20
JvDo Messages postés 1978 Date d'inscription mercredi 27 juillet 2005 Statut Membre Dernière intervention 28 septembre 2020 - 29 déc. 2011 à 16:33
Bonjour,



comment transformer sur Excel un montant en chiffre en lettre automatiquement

remerciements

5 réponses

yofa Messages postés 1093 Date d'inscription lundi 9 novembre 2009 Statut Membre Dernière intervention 1 mars 2013 207
28 déc. 2011 à 16:23
Télécharger numtext.xla (module complémentaire)
ouvrir exel
Menu <Outils>,<Macros complémentaires>
cocher "Fonctions perso_NumText"
Par exemple un nombre se trouve dans la cellule a1.
Pour avoir le nombre en toutes lettres dans la cellule a2, il faut mettre dans a2 la formule :
=numtext(a1;0)
2
Lentzouille2 Messages postés 806 Date d'inscription samedi 22 octobre 2011 Statut Membre Dernière intervention 13 janvier 2020 39
28 déc. 2011 à 16:21
Avec une macro ;)
0
yofa Messages postés 1093 Date d'inscription lundi 9 novembre 2009 Statut Membre Dernière intervention 1 mars 2013 207
28 déc. 2011 à 16:22
Bonjour,

C'est a dire 2102 deux mille cent deux...?
0
Lentzouille2 Messages postés 806 Date d'inscription samedi 22 octobre 2011 Statut Membre Dernière intervention 13 janvier 2020 39
28 déc. 2011 à 16:25
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 Variant
TClasses = Array("", "MILLE", "MILLION", "MILLIARD", "billion")
Tdizaines = Array("", "", "VINGT", "TRENTE", "QUARANTE", "CINQUANTE", "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, " ", " ")
    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 & TxtClasse
End Function
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
JvDo Messages postés 1978 Date d'inscription mercredi 27 juillet 2005 Statut Membre Dernière intervention 28 septembre 2020 856
29 déc. 2011 à 16:33
Bonsoir à tous

Une autre possibilité pour cette transformation en lettres, sans macro ni formule apparente.
https://www.cjoint.com/?ALDqFTv2kpF

Cordialement
0