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 -
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
#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
-
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
-
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 -
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 -
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.
-
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question -
Bonjour,
Non le signe "#" n'est pas toujours présent, et parfois il y a aussi a la fois "@"
Merci
James -
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