Extraction des lettres dans des chiffres

Résolu
jaymeslaguerre Messages postés 15 Statut Membre -  
Le Pingou Messages postés 12276 Date d'inscription   Statut Contributeur Dernière intervention   -
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. Le Pingou Messages postés 12276 Date d'inscription   Statut Contributeur Dernière intervention   1 478
     
    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
  2. Le Pingou Messages postés 12276 Date d'inscription   Statut Contributeur Dernière intervention   1 478
     
    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
  3. jaymeslaguerre Messages postés 15 Statut Membre
     
    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
  4. Le Pingou Messages postés 12276 Date d'inscription   Statut Contributeur Dernière intervention   1 478
     
    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
  5. Vous n’avez pas trouvé la réponse que vous recherchez ?

    Posez votre question
  6. jaymeslaguerre Messages postés 15 Statut Membre
     
    Bonjour,

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

    Merci
    James
    0
  7. jaymeslaguerre Messages postés 15 Statut Membre
     
    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. Le Pingou Messages postés 12276 Date d'inscription   Statut Contributeur Dernière intervention   1 478
       
      Merci, de rien.
      Salutations.
      Le Pingou
      0