Nblettre.xla

Bonjour,
Je souhaite télécharger cette macro.
Mon problème, tous les fichiers trouvés sont bloqués soit par Bitdefender ou par Malwarebytes.
Quelqu'on peut il me donner un lien qui est sur ?
Merci d'avance.

Configuration: Windows / Edge 91.0.864.71

10 réponses

  1. Elle "traduit" en lettres les chiffres.
    Bav.
    0
    1. C'est à dire ?
      0
      1. Tu cliques sur le lien pour telecharger un fichier excel
        0
    2. Toujours pas trouver de lien "clean" !
      0
      1. Macro à copier dans un module général
        Option Explicit

        Function chiffrelettre(s)
        Dim a As Variant, gros As Variant, sp As String, chaine As String, centime As String
        Dim LP As Long, Lg As Long, gp As Long, k As Long, x As String, t As String
        Dim d As String, c As String, t2 As String, mydz As String, myct As String
        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"
        centime = s * 100 - (Int(s) * 100)
        s = Str(Int(s))
        Lg = Len(s) - 1
        s = Right(s, Lg)
        Lg = Len(s)
        If Lg < 15 Then chaine = Mid(chaine, 1, (15 - Lg)) Else chaine = ""
        s = chaine + s
        'billions au centaines
        gp = 1
        For k = 1 To 5
          x = Mid(s, gp, 1)
          c = a(Val(x))
          x = Mid(s, 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 k
        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 = ""
        chiffrelettre = t & d & myct
        End Function

        Cdlmnt
        0
        1. ok, mais vous entendez quoi par module général ?
          0
          1. Bonjour,

            Il n'est pas documenté que Bitdefender bloque les macros Office, se contentant de mettre en garde...et parfois de carrément bloquer Excel en entier, ce qui est stupide.

            Il est plus vraisemblable que Malware bytes puisse le faire, mais tout logiciel de protection sérieux doit donner le choix final à l'utilisateur.

            Je n'utilise ni l'un, ni l'autre, j'ai fait quelques expériences sur plusieurs sites, Ublock m'a mis en garde sur certains d'entre eux (mais pas interdit), mon logiciel de sécurité n'a pas réagi.

            Aucune réaction de qui que ce soit par contre ici:
            http://gerard.g.pagesperso-orange.fr/logexl_05.htm

            Bien sûr, les macros sont désactivées par défaut dans Excel et à juste raison, mais c'est une autre question.

            Moralité, si ces logiciels de sécurité ne te laissent pas maître à bord, il faut en changer pour de plus sérieux...
            0
            1. Alt-F11 pour accéder au code
              Insertion/Module pour créer le Module 1
              Coller tout le code
              Retour dans la feuille
              La fonction personnalisée chiffrelettre(cellule_contenant_le_nombre)
              s'utilisera comme une fonction excel
              Et si tu es sous une version d'excel à partir de 2007, enregistres le fichier avec le type .xlsm (Fichier/enregistrer sous/Type .... prenant en compte les macros

              Cdlmnt
              0
              1. Superbe, ça m'a bien servi, merci ccm81
                0
            2. De rien

              Si c'est OK, merci de mettre le sujet à Résolu (en haut à droite dans ton premier post)

              Bonne journée
              0