Extraction des lettres dans des chiffres

Résolu
Bonjour, je voudrais extraire des nombres dans des lettres, et mettre les lettres ainsi que les chiffres ensemble , quelque soit ou se place les nombres,comme l'exemple, quelqu'un peut m'aider s'il te plait pour la formule sur Excel.

#7647 JANNOT 123 Pierre = #7647123 ;JANNOT PIERRE
546 JULES #2314 JEAN
JUDE #6475 ANDRE 124

Merci déjà pour vos aides
James

6 réponses

  1. Bonjour,
    Admis que c'est toujours le dièse qui prime .... !
    Vous remplacez la fonction personnalisée [extrairechiffrelettre] par les 2 suivantes :
    Admis première chaine en [A1] et en B1 cette formule : =extrairechiffre(A1) et en C1 cette formule : =extrairelettre(A1)
    Les 2 nouvelles :
    Function extrairechiffre(chaine As String)
    Dim Numero As String, Lettre As String
    Numero = "#"
    ' extraire les chiffres
    For n = 1 To Len(chaine)
      If Asc(Mid(chaine, n, 1)) > 47 And Asc(Mid(chaine, n, 1)) < 58 Then
        Numero = Numero & Mid(chaine, n, 1)
      End If
    Next
    extrairechiffre = Numero
    End Function
    Function extrairelettre(chaine As String)
    Dim Lettre As String
    Lettre = ""
    ' extraire les caractères sauf le dièse
    For n = 1 To Len(chaine)
      If (Asc(Mid(chaine, n, 1)) < 48 Or Asc(Mid(chaine, n, 1)) > 57) And Asc(Mid(chaine, n, 1)) <> 35 Then
        Lettre = Lettre & Mid(chaine, n, 1)
      End If
    Next
    extrairelettre = Lettre
    End Function


    1
    1. Bonjour,
      Une possibilité par VBA avec la fonction personnalisée (mettre dans module) :
      Admis première chaine en [A1] et en B1 cette formule : =extrairechiffrelettre(A1)
      Tirer la formule vers le bas.
      La fonction :
      Function extrairechiffrelettre(chaine As String)
      Dim Numero As String, Lettre As String
      Numero = ""
      Lettre = ""
      ' Sépare les chiffres et les caractères
      For n = 1 To Len(chaine)
        If Asc(Mid(chaine, n, 1)) > 47 And Asc(Mid(chaine, n, 1)) < 58 Then
          Numero = Numero & Mid(chaine, n, 1)
          Else
          Lettre = Lettre & Mid(chaine, n, 1)
        End If
      Next
      extrairechiffrelettre = Numero & ";" & Lettre
      End Function
       
      0
      1. Bonsoir le Pingou,
        Ca fonctionne , merci.

        Voici le resulta:
        JUDE 6475AN#DRE124 6475124;JUDE AN#DRE
        JUDE 6475ANDRE124# 6475124;JUDE ANDRE#
        #JUDE 6475ANDRE124 6475124;#JUDE ANDRE

        Une autre chose, je voudrais mettre les nombres dans une cellule avec le "#" devant les nombres, et le nom de la personne dans une autre cellule sans le "#" ni le ";".

        A1 B1 C1
        6475124;JUDE # ANDRE = #6475124 JUDE ANDRE

        Encore merci deja
        James
        0
        1. Bonjour,
          Est-ce que le signe dièse est toujours présent dans les chaines ?
          Dès votre réponse je prépare la modification.
          0
          1. Bonjour,

            Non le signe "#" n'est pas toujours présent, et parfois il y a aussi a la fois "@"

            Merci
            James
            0
            1. Hou la la la la la,

              Ça a très bien fonctionné.
              Apres je fais un Find, Replace sur les lettres, j'ai enlevé les caractères spéciaux.

              Merci beaucoup le Pingou, a la prochaine.

              James
              0
              1. Merci, de rien.
                Salutations.
                Le Pingou
                0