MACRO SUPPRIME LETTRES

Résolu
Bonjour à tous,

Je suis à la recherche d'une macro qui pourrait supprimer les lettres des cellules, afin de pouvoir ensuite les trier par ordre croissant .

La colonne contient des cellules avec des chiffres et des lettres.

Par exemple : 14dc ; 2698FGY ou bien xc286

Malgré mes recherches, je n'ai rien trouvé...

Si quelqu'un à une petite idée... ?
Merci pour votre aide.

7 réponses

  • Votes
  • Date
  • Date décroissante
  1. Contributeur
    bojour,

    avec une fonction personnalisée:

    Function extrait_nbre(ByRef texto As String) As Long
        Dim reg As Object
        Dim extraction As Object
      
        Set reg = CreateObject("vbscript.regexp")
        reg.Global = True
        reg.Pattern = "(\d?\d?\d)"
       
        Set extraction = reg.Execute(texto)
        For Each digit In extraction
            extrait_nbre = extrait_nbre & (digit.Value)
        Next digit
    End Function


    1. Contributeur
      Bonsoir,

      La fonction de michel fonctionne bien.
      En fait tu appelles une fonction personnalisée de la même façon qu'une fonction native d'excel.
      Donc dans ton exemple :
      =extrait_nbre(A2)

      Tu peux aussi utiliser 'insérer / fonction...' et choisir la catégorie 'personnalisée'.
      Elle doit y être présente si elle a bien été saisie dans un module (à-priori c'est le cas)

      eric
      1. Bonjour,
        Merci pour votre réponse je vais essayer.
        Merci
        1. Bonsoir,

          J'ai essayé mais ça ne marche pas, j'ai installé la fonction mais le résultat est nul : #NOM?

          Pour résumer :

          J'ai ma série de lettre et de chiffre en colonne A (ex 105ert en Cellule A2)

          en colonne B je met la fonction : ='Fichiertest.xls'!Module1.extrait_nbre()+A2

          Une idée ?
          Merci Beaucoup
          1. Effectivement ça marche bien, j'aurais mieux fait d'aller me coucher hier soir ......
            Merci à tous les deux.