Extraire des chiffres dans texte

Résolu/Fermé
Moussine - 19 oct. 2007 à 17:45
 GillesCCC - 4 mars 2008 à 17:20
Bonjour,
j'ai un tableau excel contenant une colonne d'adresses ... celles-ci sont formées soit uniquement de texte : "Rue de la Fontaine" soit de chiffres et de texte "5 rue de la Fontaine"... je dois transférer ces données dans un autre tableau excel qui comprend 2 colonnes pour les mêmes adresses, une avec le N° de rue et l'autre avec le Nom de la Rue.... le problème bien sur est que les adresses n'étant pas toutes pareilles, et les chiffres + ou - longs, je ne peux pas utiliser la formule "stxt" puisque je ne sais pas le nb de caractères à extraire....
y aurait-il une formule qui reconnaît les chiffres dans une suite alphanumérique ? ou une autre formule qui pourrait m'aider.... merci mille fois par avance !

7 réponses

Papou93 Messages postés 146 Date d'inscription mercredi 4 avril 2007 Statut Membre Dernière intervention 5 juin 2012 59
19 oct. 2007 à 20:35
Bonjour Moussine,

Par formule, je ne vois pas la solution. Par contre, si tu connais VBA, voici un exemple de code qui "décortique" le contenu de la cellule "A1".
Cette macro peut-être appelée dans une boucle de traitement d'une plage de cellules.Les données sont récupérées dans les variables "Numero" et "Rue" qu'il est facile d'exploiter dans la boucle.

Dim Numero As String, Rue As String, Adresse As String
' Initialisation des variables
Numero = ""
Rue = ""
' Récupère le texte contenu dans la cellule
Adresse = Range("A1").Value
' Sépare les chiffres et les caractères
For n = 1 To Len(Adresse)
  If Asc(Mid(Adresse, n, 1)) > 47 And Asc(Mid(Adresse, n, 1)) < 58 Then
    Numero = Numero & Mid(Adresse, n, 1)
    Else
    Rue = Rue & Mid(Adresse, n, 1)
  End If
Next
' Supprime l'espace en début de la rue (si existe)
If Asc(Left(Rue, 1)) = 32 Then Rue = Mid(Rue, 2)


Espérant avoir pu t'aider.

Cordialement.
2
eriiic Messages postés 24569 Date d'inscription mardi 11 septembre 2007 Statut Contributeur Dernière intervention 28 décembre 2023 7 212
19 oct. 2007 à 23:20
Bonsoir,

Je vois qu'on te propose plusieurs methodes, je ne vais pas essayer d'en chercher une autre.
Je voulais juste te dire de penser éventuellement à détecter les bis et ter si ça a une importance pour ce que tu dois en faire ensuite.

Papou93, tu as les fonctions trim, ltrim rtrim pour enlever les espaces auquelles tu n'as pas pensé

cdt
eric
1
zzz383 Messages postés 12 Date d'inscription mercredi 19 septembre 2007 Statut Membre Dernière intervention 23 octobre 2007 18
19 oct. 2007 à 23:58
Pour trouver la rue, en supposant ton texte écrit en B5, il me semble que ceci fonctionne :

=SI(OU(CODE(B5)>57;CODE(B5)<48);B5;DROITE(B5;NBCAR(B5)-CHERCHE(" ";B5)))

Si çà te vas, je veux bien chercher pour le numéro, mais demain...
1
Je me suis branché sur le forum et j'ai utilisé ta formule pour extraire de l'adresse le nom de la rue ...ça marche parfaitement
Maintenant comment faire pour extraire le numéro ?
Merci

gillesccc
0
zzz383 Messages postés 12 Date d'inscription mercredi 19 septembre 2007 Statut Membre Dernière intervention 23 octobre 2007 18
19 oct. 2007 à 18:33
Petite idée : si tes numéros sont bien tous au début de ton texte, tu peux déterminer le nombre de caractères à extraire en utilisant la fonction cherche qui te renvoie la position du texte cherché (tu cherches l'espace bien sûr).

J'espère que çà fait avancer le smilblic...
0

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

Posez votre question
Bonjour,
c'est ce que j'utilise pour l'instant, mais ce n'est pas du tout pratique car bien évidemment, l'espace se retrouve tout aussi bien dans les adresses SANS numéro et dans les adresses AVEC numéro..... alors que moi, je ne veux extraire QUE le numéro.... bon, ça fait rien, tu m'as qd même donné une idée, en transformant ensuite ma colonne avec =cnum puis en enlevant tous les #VALEUR! ça va me faire gagner un peu de temps... merci quand même donc !!!

mais si qq'un a une idée plus directe, je suis tjrs preneuse !!!
merci par avance !
0
just1xpa2 Messages postés 1603 Date d'inscription jeudi 26 juillet 2007 Statut Membre Dernière intervention 3 février 2013 196
20 oct. 2007 à 01:35
bonjour, je repart en chemin avec ma methode de base, a savoir, dans ton classeur, tu a une colonne , mon , prenom , adresse, ville , code postal, il doit te manquer des colonnes pour lesquels tu veux inserer des choses bien precises, a savoir n° de rue , bis ou ter etc dans ta ligne a1 tu en fait ta ligne de titre, ensuite tu fractionne ta feuille en ramenant la barre sos ton titre, ensuite, tu figes le volet, après cela, tu te sert du filtre automatique, dans tes adresse, tu tapes par exemple dans personnalise commence par 1 et tu aura toutes les adresses qui commencent par 1 , tu met dans la ligne n° le n° 1 , en suite tu reclic sur tout et tu continue , tu devrait arriver a un resultat assez vite, mais souvient toi, que tu peux dans chaque colonne saisir 1003 lignes differentes , donc enorme possibilité concernant les département, tu saisie les 2 premier chiffre et pou le code poste les 3 dernier, tu reduit considerablement ton tableau, si tu n"a pas tous compris revient ici.. cordialement
0
Bonjour,
MERCI A TOUS
je vais essayer de voir ce que je peux faire avec tout ça ;o)))
bon week-end
0