Extraction des lettres dans des chiffres

Résolu
jaymeslaguerre Messages postés 15 Statut Membre -  
Le Pingou Messages postés 12644 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
A voir également:

6 réponses

Le Pingou Messages postés 12644 Date d'inscription   Statut Contributeur Dernière intervention   1 463
 
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
Le Pingou Messages postés 12644 Date d'inscription   Statut Contributeur Dernière intervention   1 463
 
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
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
Le Pingou Messages postés 12644 Date d'inscription   Statut Contributeur Dernière intervention   1 463
 
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

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
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
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
Le Pingou Messages postés 12644 Date d'inscription   Statut Contributeur Dernière intervention   1 463
 
Merci, de rien.
Salutations.
Le Pingou
0