Adresse dans 1 celulle réparti sur 3 celulles

gourdin

XLDnaute Impliqué
Bonjour,

Dans une même cellule sont regroupés l'adresse, le code postal et la villes (exemple "30 rue des cherchevets 95800 CERGY LE HAUT").

Je souhaiterai la diviser en 3 celulles :

1 celulle adresse avec le texte avant le code postal ( exemple : "30 rue des cherchevets"
1 cellule avec le code postal ("95800")
1 cellule avec la ville (CERGY LE HAUT")

Bien entendu il s'agit d'un grand nombre d'adresses

Merci de votre aide
 

Tibo

XLDnaute Barbatruc
Re : Adresse dans 1 celulle réparti sur 3 celulles

Bonjour,

par formule (dont une matricielle) :

Adresse en A1,

en C1, la formule matricielle pour isoler le code postal :

Code:
=STXT(A1;EQUIV(VRAI;ESTNUM(STXT(SUBSTITUE(A1;" ";"µ");
LIGNE(INDIRECT("1:"&NBCAR(A1)));5)*1);0);5)

Formule matricielle à valider par CTRL + MAJ + ENTREE

en B1 :

Code:
=GAUCHE(A1;TROUVE(C1;A1)-2)

en D1 :

Code:
=DROITE(A1;NBCAR(A1)-TROUVE(C1;A1)-5)

Je te laisse tester

Bon app

@+
 

kjin

XLDnaute Barbatruc
Re : Adresse dans 1 celulle réparti sur 3 celulles

Bonjour le fil,
Avec fonctions persos

PierrreJean : tu as oublié de "trimmer" :D

A+
kjin
 

Pièces jointes

  • Gourdin.xls
    24.5 KB · Affichages: 72
  • Gourdin.xls
    24.5 KB · Affichages: 72
  • Gourdin.xls
    24.5 KB · Affichages: 77

Fanfan68

XLDnaute Junior
Re : Adresse dans 1 celulle réparti sur 3 celulles

Bonjour à tous,

Ayant quelques fois le même besoin, j'ai été intéressé par ta proposition Pierrejean, j'y ai d'ailleurs également réfléchie et on peu guère faire autrement que ce que tu as fais.

Par contre, le seul hic, c'est qu'il ne faut pas qu'il y ait un seul espace entre un des 5 chiffres constituant le code postal.....

A bientôt
 

pierrejean

XLDnaute Barbatruc
Re : Adresse dans 1 celulle réparti sur 3 celulles

Re

@kjin
Merci pour ta remarque (j'ai modifié le fichier)

@Fanfan68
Effectivement (mais pourquoi diable y aurait-il un espace ? et d'ailleurs tout autre caractere ?)
par contre il est vrai qu'il doit y en avoir un avant le code postal (il est possible de modifier le code dans ce sens)
Par ailleurs dans ce domaine (frequemment evoqué ici) il n'existe pas, a ma connaissance, de solution pouvant s'accomoder de toutes les fantaisies possibles dans l'ecriture des adresses postales
 

Tibo

XLDnaute Barbatruc
Re : Adresse dans 1 celulle réparti sur 3 celulles

Bonjour, salut Pierre :),

Dans l'hypothèse où le code postal serait écrit 95800 ou 95 800 (séparation au niveau des milliers), une adaptation de la solution proposée plus haut :

Pour isoler le code postal, toujours en matriciel en C1 :

Code:
=STXT(SUBSTITUE(A1;" ";"");EQUIV(VRAI;ESTNUM(STXT(SUBSTITUE(A1;" ";"");
LIGNE(INDIRECT("1:"&NBCAR(A1)));5)*1);0);5)

Formule matricielle à valider par CTRL + MAJ + ENTREE

En B1 :

Code:
=GAUCHE(A1;SI(ESTERREUR(TROUVE(TEXTE(C1;"00 000");A1));TROUVE(C1;A1);
TROUVE(TEXTE(C1;"00 000");A1))-2)

En D1 :

Code:
=DROITE(A1;NBCAR(A1)-SI(ESTERREUR(TROUVE(TEXTE(C1;"00 000");A1));
TROUVE(C1;A1)-5;TROUVE(TEXTE(C1;"00 000");A1))-6)

Fonctionne avec 95800 ou 95 800

Après, il va être difficile de gérer toute autre écriture du code postal.


@+
 

gourdin

XLDnaute Impliqué
Re : Adresse dans 1 celulle réparti sur 3 celulles

Bonjour, salut Pierre :),

Dans l'hypothèse où le code postal serait écrit 95800 ou 95 800 (séparation au niveau des milliers), une adaptation de la solution proposée plus haut :

Pour isoler le code postal, toujours en matriciel en C1 :

Code:
=STXT(SUBSTITUE(A1;" ";"");EQUIV(VRAI;ESTNUM(STXT(SUBSTITUE(A1;" ";"");
LIGNE(INDIRECT("1:"&NBCAR(A1)));5)*1);0);5)

Formule matricielle à valider par CTRL + MAJ + ENTREE

En B1 :

Code:
=GAUCHE(A1;SI(ESTERREUR(TROUVE(TEXTE(C1;"00 000");A1));TROUVE(C1;A1);
TROUVE(TEXTE(C1;"00 000");A1))-2)

En D1 :

Code:
=DROITE(A1;NBCAR(A1)-SI(ESTERREUR(TROUVE(TEXTE(C1;"00 000");A1));
TROUVE(C1;A1)-5;TROUVE(TEXTE(C1;"00 000");A1))-6)

Fonctionne avec 95800 ou 95 800

Après, il va être difficile de gérer toute autre écriture du code postal.


@+


Bonjour, merci de toutes vos possibilités.
Par contre, sauf erreur de ma part, la formule en D1 ci-dessus, censée prendre en compte les comptes postaux avec ou sans espace ne fonctionne que si il y a un espace.
 

Tibo

XLDnaute Barbatruc
Re : Adresse dans 1 celulle réparti sur 3 celulles

Bonjour,

Effectivement, ci-joint correction pour D1 :

Code:
=DROITE(A1;NBCAR(A1)-SI(ESTERREUR(TROUVE(TEXTE(C1;"00 000");A1));
TROUVE(C1;A1)+5;TROUVE(TEXTE(C1;"00 000");A1)+6))

Je te laisse tester

@+
 

Discussions similaires

Statistiques des forums

Discussions
312 493
Messages
2 088 950
Membres
103 989
dernier inscrit
jralonso