Séparer adresse de son code postale

Bonjour,

Question serait il possible d'extraire le code postale et la ville avec une formule?

Chemin des oies 80000 - Amiens

Le code postal et la ville sont tous séparé par un trait d'union. Et les codes postaux ont tous 5 chiffres.



Bonjour,

En fouillant un peu dans les réponses similaires, ily a a de nombreuses réponses à la question

image

en voici une par exemple

https://forum.excel-pratique.com/excel/separer-adresse-code-postal-ville-155560#p962432

Bonjour, Furiousxsi

Je peux te proposer 2 solutions :

Premier cas de figure :

Pour cette formule il faut que le format de tes adresse respecte une conditions à savoir toujours le trait d'union qui sépare Code postal et ville.

Il te suffit de Rechercher dans ta cellule ce fameux trait d'union et d'en extraire avec STXT les 6 caractères précédent (5 chiffres du code postal + l'espace entre le - et le code)

Voici la formule :

=STXT(A1;CHERCHE("-";A1;1)-6;5)

L'avantage de cette formule est que si tu as des n° de rue devant le ''Chemin des oies'' par exemple, cette formule ne t'extrait que le code postal

Deuxième cas de figure :

Si tu n'as jamais de numéro de rue tu peux simplement utiliser cette formule :

=RECHERCHE(9^9;--("0"&STXT(A1;MIN(CHERCHE({0.1.2.3.4.5.6.7.8.9};A1&"0123456789"));LIGNE($1:$100))))

Ce que j'ai mis en rouge correspond a la cellule dans laquelle doit être ton adresse, c'est donc à toi de la modifier en fonction de ton fichier.

J'espère t'avoir été utile, bonne journée à toi !

Paul

Bonjour,

Voici une proposition avec 2 fonctions personnalisées :

function GetCP(sAdresse$) as string
t = split(sAdresse)
for each elem in t
    if elem like "#####" then GetCP = elem: exit function
next elem
end function

function GetVille(sAdresse$) as string
t = split(sAdresse, " - ")
for i = lbound(t) to ubound(t)
    if t(i) like "*#####" then GetVille = application.trim(t(i + 1)): exit function
next i
end function

A utiliser ainsi pour une adresse en A1 :

=GetCP(A1) '<<<< en B1
=GetVille(A1) '<<<< en C1

à compléter par la formule suivante pour obtenir l'adresse sans le CP ni la ville :

=SUBSTITUE(A1;B1&" - "&C1;"") '<<<< en D1

Il peut encore subsister des cas particuliers (Cedex, complément d'adresse à gérer).

Pour le CP, il faut quand même prévoir un format texte dans la colonne au cas où.

Cdlt,

Merci pour ta réponse M12 mais mon cas de figure ne correspond pas.

Merci 3GB je vais tester

Merci PaulBer je vais regarder ça je vous ferai un retour à tout les 3

J'ai pioché dans vos réponses j'ai utilisé:

=STXT(#REF!;CHERCHE(" -";#REF!;1)+2;25) pour extraire les villes

=STXT(#REF!;CHERCHE(" -";#REF!;1)-6;6) pour extraire les code postaux

Merci PaulBer

Je vais quand même tester la macro pour différencier les 2

à bientôt

3GB j'ai créé les fonctions mais quand je veux insérer la formule ça me notifie d'une erreur ;)

formule excel

Bonjour,

Il faut au préalable définir les 2 fonctions en collant le code proposé dans un module standard du classeur (voir "créer fonction VBA" sur Google).

Cdlt,

Rechercher des sujets similaires à "separer adresse code postale"