Nblettre.xla excel 2019

Bonjour,

j'aimerais change le total d'un facture en Euro  en lettre comme le demande mon client . Je n'y arrive pas a chaque fois je le tape en texte à chaque fois

J'ai ben chargé la version Nblettre.xla j'ai Excel 2019 . Mais cela ne fonctionne pas dans la cellule j'ai pourtant utilisé =SpellNumber(I36) il s'affiche dièse Nom. Ou est mon erreur 

merci de vos réponses

9
Windows / Chrome 130.0.0.0

5 réponses

  • Votes
  • Date
  • Date décroissante
  1. Bonjour,

    Quand vous dites "J'ai bien chargé la version Nblettre.xla" qu'entendez-vous par là ?
    Le lien que vous avez donné, se met en alerte à cause du certificat, ou avez-vous téléchargé le fichier ?

    Il faut l'ajouter à Excel en passant par l'onglet Développeur, puis "Compléments"
    Est-ce bien ce que vous avez fait ?

    A+

    1. Bonjour,

      Si tu as bien installé le complément, essaie :

      =ConvNumberLetter(I36;1)

      Daniel


      1. Bonjour, merci de votre réponse 

        Je n'es pas ce complètement, de quoi s'agit t il ? Ou le chercher et le positionner?

        encore merci de votre aide . 

        Je suis un retraité novice dans Excel qui tient le secrétariat de notre association.  

        1. Bonjour,

          Il existe plusieurs solutions.

          Le complément NbLettre.xla se trouve par exemple ici avec son mode d'emploi, il souffre d'un certain nombre d'erreurs "d'accord"" des valeurs.
           

          http://www.formettic.be/Module3/Excel-Calc/web/co/0343-ConvNumberLetter.html
           

          Les alternatives sont de créer une macro personnalisée (donc dans un fichier xlsm) ou bien d'utiliser une formule, voir par exemple ici:

          https://forums.commentcamarche.net/forum/affich-37516117-convertir-des-chiffres-en-lettres-avec-une-unique-formule

      2. En complément du post de brucine, si tu as un problème pour dézipper le fichier, voici un lien pour récupérer le fichier nblettre.xla :

        https://www.dropbox.com/scl/fi/rpgo18r15oflwe7josdbt/NbLettre.xla?rlkey=qy7g4q47f53dzsbl0b0vss0t2&st=3pmgxcq7&dl=0

        Daniel


        1. Bonjour,

          à toutes fins utiles, formule prête à l'emploi.

          Elle présente l'inconvénient de ne pas être très intuitive à écrire mais l'avantage qu'on peut la personnaliser pour la devise et respecter les règles en matière de trait d'union et de pluriel.

          https://www.cjoint.com/c/NKpjCM1bFnF

        2. @brucine

          En dehors de la devise il faut bien sûr considérer la langue à l'intérieur de cette même devise, fût-elle francophone; par exemple nos amis belges connaissent bien l'euro, mais nonante et pas quatre-vingt-dix ce qui amènerait à réécrire en conséquence.

      3. Bonjour,

        Pour toutes celles ou tous ceux qui auraient un doute avec ces fichiers téléchargeables, voici simplement le code d'une fonction que j'utilise

          Dim a As Variant, gros As Variant, Négatif As Boolean
          a = Array("", "un", "deux", "trois", "quatre", "cinq", "six", "sept", _
                    "huit", "neuf", "dix", "onze", "douze", "treize", "quatorze", "quinze", "seize", "dix sept", _
                    "dix huit", "dix neuf", "vingt", "vingt et un", "vingt-deux", "vingt-trois", "vingt-quatre", _
                    "vingt-cinq", "vingt-six", "vingt-sept", "vingt-huit", "vingt-neuf", "trente", "trente et un", _
                    "trente-deux", "trente-trois", "trente-quatre", "trente-cinq", "trente-six", "trente-sept", _
                    "trente-huit", "trente-neuf", "quarante", "quarante et un", "quarante-deux", "quarante-trois", _
                    "quarante-quatre", "quarante-cinq", "quarante-six", "quarante-sept", "quarante-huit", _
                    "quarante-neuf", "cinquante", "cinquante et un", "cinquante-deux", "cinquante-trois", _
                    "cinquante-quatre", "cinquante-cinq", "cinquante-six", "cinquante-sept", "cinquante-huit", _
                    "cinquante-neuf", "soixante", "soixante et un", "soixante-deux", "soixante-trois", _
                    "soixante-quatre", "soixante-cinq", "soixante-six", "soixante-sept", "soixante-huit", _
                    "soixante-neuf", "soixante-dix", "soixante et onze", "soixante-douze", "soixante-treize", _
                    "soixante-quatorze", "soixante-quinze", "soixante-seize", "soixante-dix-sept", _
                    "soixante-dix-huit", "soixante-dix-neuf", "quatre-vingts", "quatre-vingt-un", _
                    "quatre-vingt-deux", "quatre-vingt-trois", "quatre-vingt-quatre", "quatre-vingt-cinq", _
                    "quatre-vingt-six", "quatre-vingt-sept", "quatre-vingt-huit", "quatre-vingt-neuf", _
                    "quatre-vingt-dix", "quatre-vingt-onze", "quatre-vingt-douze", "quatre-vingt-treize", _
                    "quatre-vingt-quatorze", "quatre-vingt-quinze", "quatre-vingt-seize", "quatre-vingt-dix-sept", _
                    "quatre-vingt-dix-huit", "quatre-vingt-dix-neuf")
          gros = Array("", "billions", "milliards", "millions", "mille", "Euros", "billion", _
                       "milliard", "million", "mille", "Euro")
          Sp = Space(1)
          Chaine = "00000000000000"
          ' Vérifier si nombre négatif, si OUI prendre la valeur absolue
          Négatif = (Montant < 0)
          If Négatif Then Montant = Abs(Montant)
          ' Récupérer les centimes
          Centime = Montant * 100 - (Int(Montant) * 100)
          Montant = Trim(Str(Int(Montant))): Lg = Len(Montant)
          If Lg < 15 Then Chaine = Mid(Chaine, 1, (15 - Lg)) Else Chaine = ""
          Montant = Chaine + Montant
          'billions au centaines
          Gp = 1
          For K = 1 To 5
            x = Mid(Montant, Gp, 1): c = a(Val(x))
            x = Mid(Montant, Gp + 1, 2): d = a(Val(x))
            If K = 5 Then
              If t2 <> "" And c & d = "" Then mydz = "Euros" & Sp: GoTo fin
              If t <> "" And c = "" And d = "un" Then mydz = "un Euros" & Sp: GoTo fin
              If t <> "" And t2 = "" And c & d = "" Then mydz = "d'Euros" & Sp: GoTo fin
              If t & c & d = "" Then myct = "": mydz = "": GoTo fin
            End If
            If c & d = "" Then GoTo fin
            If d = "" And c <> "" And c <> "un" Then mydz = c & Sp & "cents " & gros(K) & Sp: GoTo fin
            If d = "" And c = "un" Then mydz = "cent " & gros(K) & Sp: GoTo fin
            If d = "un" And c = "" Then myct = IIf(K = 4, gros(K) & Sp, "un " & gros(K + 5) & Sp): GoTo fin
            If d <> "" And c = "un" Then mydz = "cent" & Sp
            If d <> "" And c <> "" And c <> "un" Then mydz = c & Sp & "cent" + Sp
            myct = d & Sp & gros(K) & Sp
        fin:
            t2 = mydz & myct
            t = t & mydz & myct
            mydz = "": myct = ""
            Gp = Gp + 3
          Next
          d = a(Centime)
          If t <> "" Then myct = IIf(Centime = 1, " centime", " centimes")
          If t = "" Then myct = IIf(Centime = 1, " centime d'Euro", " centimes d'Euro")
          If Centime = 0 Then d = "": myct = ""
          ' Renvoyer le résultat de la fonction
          NombreEnLettre = IIf(Négatif, "MOINS ", "") & UCase(t) & IIf(d <> "", "ET " & UCase(d & myct), "")
        End Function

        A mettre dans un module, le fichier est à enregistrer au format ".xlam"

        Voilà