Extraire Adresse, CP et Ville

Bonjour à tous,

Je voudrais maintenant dans l'exemple joint récupérer l'adresse, le code postal et la ville. J'ai essayé avec Texte.avant et Texte.après mais sans succès.

Merci de vos réponses

image

Bonjour à tous !

Une approche possible :

=REGEX.EXTRAIRE(TableAdresses[@Liste];"(.+(?=\d{5}\s))(\d{5}\s)(.+)";2)

A étirer vers le bas.

Bonjour à tous les deux,

Une possibilité de macro valable uniquement en France.

Bonjour à tous,

Une solution avec 3 formules

A+

Bonjour à tous,

Merci de vos solutions, cependant :

JFL : Je ne comprends pas tous ces signes ?!=:-), tu peux expliquer et quand je met ta formule dans mon tableau j'ai l'erreur #PROPAGATION!

Optimix : quand je met ton module dans mon fichier je ne peux pas mettre le résultat ailleurs qu'en colonnes C, D, E

JExceL2fr : si j'ai 500 lignes je remplace 255 par 500 ? mais ça a l'air de fonctionner sauf dans les rares cas où je n'ai pas de code postal

Merci de vos réponses

Tu peux mettre les extractions là où tu veux. Il suffit de modifier légèrement la macro en fonction de tes besoins :

        Sheets("Adresses").Cells(i, 3) = tablo(1)
        Sheets("Adresses").Cells(i, 4) = tablo(2)
        Sheets("Adresses").Cells(i, 5) = tablo(3)

Ici :
cells(i,3) = colonne 3 (C)
cells(i,4) = colonne 4 (D)
cells(i,5) = colonne 5 (E)

Hello,

quand je met ta formule dans mon tableau j'ai l'erreur #PROPAGATION!

les formules matricielle n'aiment pas les tableaux structurés

Bonjour à tous !

JFL : Je ne comprends pas tous ces signes ?!=:-), tu peux expliquer et quand je met ta formule dans mon tableau j'ai l'erreur #PROPAGATION!

Avez-vous eu la curiosité d'explorer les "expressions régulières" ? (Voir ici pour une approche initiale....)

Avez-vous eu la curiosité de rechercher l'origine de l'erreur #PROPAGATION! ? (Par exemple ici....)

La formule proposée tenait compte :

  • des données (et leur forme) présentées
  • de l'absence de tableau structuré dans le classeur initial

Elle scinde automatiquement la rue, le CP et la ville. (ce qui nécessite une plage libre....)

Elle ne tient pas compte des contraintes non formulées dans le message originel.

Bonjour à tous,

Merci de vos réponses.

Optimix : je ne trouve pas ça très pratique, est-il envisageable d'avoir une sorte de fonction pour chacune de ces trois valeurs, comme pour le nom et prénom du sujet précédent

Nain porte koi : je ne savais pas que ça s'appelait une formule matricielle et de plus le lien proposé ne parle pas de notion de tableau mais uniquement de plage vide et mon tableau est bien vide

JFL : on se calme garçon, désolé de t'avoir dérangé, peut-être y aura-t-il quelqu'un d'autre pour aider

je ne trouve pas ça très pratique

Je me suis contenté de reproduire strictement votre exemple pour ne pas sortir des clous.
3 fonctions personnalisées dans la version suivante :

Bonjour à tous !

JFL : on se calme garçon, ......

Assurément, la condescendance s'inscrit parmi vos plus nobles atouts.

Impressionnant...

Bonjour rojé,

Le ton employé dans tes réponses envers des bénévoles qui prennent du temps pour t’aider n’est pas approprié. Ce type de comportement ne correspond pas aux règles et à l’esprit du forum.

Merci d’adapter ta manière de communiquer afin de maintenir des échanges respectueux. Sans cela, il est peu probable que d’autres membres continuent à te répondre.

La suite dépend de toi.

Bonjour à tous,

(Au dessus de la mêlée !!)

Une formule qui délivre un résultat sur plusieurs lignes ou colonnes ne peut se mettre dans un tableau structuré, il faut une formule par colonne et qui renvoie un résultat unitaire.

Une proposition avec les expressions régulières, complexes et déroutantes qui nécessitent un apprentissage, (disponibles pour Excel 365 uniquement) :

Pour le code postal: =REGEX.EXTRAIRE(A4;"\d{5}") - on extrait les valeurs comportant 5 chiffres
Pour l'adresse : =REGEX.EXTRAIRE(A4;".*(?=\d{5})") - on extrait tout les caractères (.*) qui précèdent le code postal (?=)
Pour la ville: =REGEX.EXTRAIRE(A4;"(?<=\d{5} ).*") - on extrait tout les caractères (.*) qui suivent le code postal (?<=)

En cas d'absence de code postal ces formules délivrent une erreur

Bonjour à tous,

Optimix : génial cela fonctionne comme je souhaite

begood : cela fonctionne aussi comme je souhaite et merci pour les explications, cela parait simple quand on sait. Pour les rares absence de CP je peux le gérer facilement à la main.

JFL : je comprends ta réponse comme "Lis la doc et tu comprendras, moi j'ai fait mon boulot" . Je trouve cela un peu cavalier

h2so4 : qu'un contributeur expérimenté envoie bouler un demandeur débutant pour une remarque sur sa formule, est quand même désagréable non ?

Rechercher des sujets similaires à "extraire adresse ville"