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

  • Votes
  • Date
  • Date décroissante
  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
    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...
      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
        1. Superbe, ça m'a bien servi, merci ccm81
      2. De rien

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

        Bonne journée