Extraire information cellule alphanumérique

Résolu
Khorohk01 -  
via55 Messages postés 14512 Date d'inscription   Statut Membre Dernière intervention   -
Bonjour,

Après quelques recherches sur divers forum et plusieurs essais infructueux, j'ai besoin d'aide !

Je possède une liste d'adresse complète dans une une colonne, et j'aurai besoin de la séparer en deux colonnes distinctes.

Exemple :

Colonne A :
RUE SAINT FABIEN 05220 LE MONETIER LES BAINS
RUE DE LA CIME 05220 MONETIER LES BAINS
RES LA TURIERE 191 RUE LA PETITE TURIERE 05220 MONETIER LES BAINS
1 RUE DES MINEURS 05220 MONETIER LES BAINS
24 RUE SAINT ELDRADE 05220 LE MONETIER LES BAINS
APP 1ER ETAGE LE FREYSSINET IMPASSE DE L ANCIENNE ECOLE 05220 LE MONETIER LES BAINS

Colonne B (désirée) :

RUE SAINT FABIEN
RUE DE LA CIME
RES LA TURIERE 191 RUE LA PETITE TURIERE
1 RUE DES MINEURS
24 RUE SAINT ELDRADE
APP 1ER ETAGE LE FREYSSINET IMPASSE DE L ANCIENNE ECOLE

Colonne C (désirée) :

05220 LE MONETIER LES BAINS
05220 LE MONETIER LES BAINS
05220 LE MONETIER LES BAINS
05220 LE MONETIER LES BAINS
05220 LE MONETIER LES BAINS
05220 LE MONETIER LES BAINS


La seule constante dans la colonne A est le code postal, mais attention, celui ci change, j'ai du 05220 comme je peux avoir du 44000 ou du 78640.
Donc peut-être trouver une fonction qui extrait une chaine de texte avant ou après X chiffres aléatoires ?

Merci d'avance :)
A voir également:

4 réponses

Fahora Messages postés 814 Date d'inscription   Statut Membre Dernière intervention   68
 
Bonjour ,

Dans ta colonne B : =GAUCHE(A1;TROUVE({0;1;2;3;4;5;6;7;8;9};A1)-1)

Dans ta colonne C : =DROITE(A1;NBCAR(A1)-(TROUVE({0;1;2;3;4;5;6;7;8;9};A1)-1))

Cordialement,
0
Khorohk01
 
Bonjour,

Merci pour votre réponse rapide !

Cependant il y a encore un problème.
Dans ma colonne C, lorsque ma cellule en A commence par le numéro de rue (ex : 109 RUE SAINT FABIEN 05220 MONETIER LES BAINS ), il y a certaines fois où le résultat qui sort est : 09 RUE SAINT FABIEN 05220 MONETIER LES BAINS


Alors que sur d'autre (ex : 67 RUE SAINT FABIEN 05220 MONETIER LES BAINS
), il me sort bien juste 05220 MONETIER LES BAINS.

Avez vous une solution ?

Cordialement
0
Fahora Messages postés 814 Date d'inscription   Statut Membre Dernière intervention   68
 
Les CP sont obligatoirement ceux mentionnés dans ton premier post ?
0
Khorohk01
 
Non c'est ceux de la france entière ! Mais la solution de Vaucluse est parfaitement adaptée !
Merci de ton aide
0
Vaucluse Messages postés 26496 Date d'inscription   Statut Contributeur Dernière intervention   6 438
 
Bonjour

voyez si vous pouvez adapter ça

quelques explications dans le, fichier

https://www.cjoint.com/c/FFBhHTgvuGX

crdlmnt
0
Khorohk01
 
Bonjour Vaucluse,

J'ai adapté votre fichier et il convient parfaitement, merci beaucoup

J'ai encore une question, est-il possible de compresser tous les codes postaux (colonne ref) dans une seul cellule ? Faire une sorte de matrice ?
Car malgré mon processeur à 4 coeurs, le pc a du mal a tout calculer étant donné la longueur de la liste des codes postaux !

Cordialement
0
Vaucluse Messages postés 26496 Date d'inscription   Statut Contributeur Dernière intervention   6 438
 
Non, ce n'est pas possible vu la formule.Je ne pensais pas que vous deviez traiter tous les codes du pays, et SOMMEPROD composé ainsi et aussi assez lourd!.. et vu qu'il y a environ 40000 codes différents, il faut effectivement un peu de temps.
Pour alléger au maximum, limitez bien tous les champs au strictes hauteurs nécessaires. Et peut être de travailler en plusieurs sections de codes en réduisant la liste et en copiant collant par groupe de 1000 ou 1500 (avec un copier coller valeur des résultats pur "sortir" les résultats de la colonne formule

Et si ça ne va pas il faudra sans doute passer par VBA, mais là, ce n'est plus dans mes compétences.

Bonne chance, donc
crdlmnt
0
Khorohk01
 
Non mais c'est parfait, je vais juste faire preuve de patience haha

Merci beaucoup :)
0
via55 Messages postés 14512 Date d'inscription   Statut Membre Dernière intervention   2 746
 
Bonjour à tous

En VBA avec une fonction personnalisée pour lire la chaine de caractère à partir de la fin et trouver directement le CP donc :
http://www.cjoint.com/c/FFBjztoBwqS

La fonction personnalisée decoupage s'emploie avec la syntaxe : =decoupage(cellule à traiter) ainsi en B2 on a la formule =decoupage(A2)

Cdlmnt
Via
0