Extraire partie d'adresse postale

Bonjour,

J'ai une colonne dans un fichier remplie d'adresses postales, par exemple :

02 CHEMIN LALANNE
1 A ALLEE DE VERNEILH
1 TER RUE DE SEGUES
1008BIS CHEMIN MATACHOT
18A ALLEE SOPHIA

Je souhaite ne récupérer que l'adresse, sans le numéro, dans une nouvelle colonne :

CHEMIN LALANNE
ALLEE DE VERNEILH
RUE DE SEGUES
CHEMIN MATACHOT
ALLEE SOPHIA

J'ai tenté d'écrire cette formule (je suis nul en formule excel et en vb) :

=SI(ESTNUM(CNUM(GAUCHE(G12;(CHERCHE(" ";G12)-1))));DROITE(G12;(CHERCHE(" ";G12)+1));G12)

Mais ça ne fonctionne pas, ça ne récupère qu'un bout de la fin de l'adresse.

Quelqu'un peut-il m'aider svp ?
Merci par avance.

5 réponses

  1. @JvDo
    Est-ce que la liste doit être créée dans une nouvelle feuille de mon document pour pouvoir faire fonctionner la macro ?
    0
    1. tu mets la liste dans une feuille paramètre de ton classeur ou sur ta feuille de travail.

      l'important, c'est que tu la nommes type_voie

      tu peux la mettre dans un autre classeur mais il faut modifier la macro

      je n'ai pas essayé, mais tu dois pouvoir même mettre cette liste dans un nom avec les accolades et les séparateurs et les guillemets.
      faut tester

      cdlt
      0
    2. @JvDoMerci je testerai.
      0
  2. @JvDo
    Est-ce que cette fonction utilise les données de la liste dans une nouvelle feuille que je dois ajouter à mon fichier svp ?
    0
    1. Merci à tous pour vos réponses, je vais tester tout cela.
      Bonne journée.
      0
      1. 4ème tentative d'envoi de la réponse.....

        Bonsoir,

        1) tu crées un nom type_voie sur ta feuille de calcul avec les données (184 lignes) que tu trouveras en bas de message.

        2) tu colles cette fonction dans un module
        Function extrait_adresse(ad)
        Dim list_type()
        list_type = Range("type_voie")
        nb = UBound(list_type)
        For i = 1 To nb
        If InStr(ad, list_type(i, 1)) > 0 Then
        extrait_adresse = Right(ad, Len(ad) - InStr(ad, list_type(i, 1)) + 1)
        Exit Function
        End If
        Next
        End Function

        3) tu l'utilises sur tes données.

        remarque : mon séparateur est un point-virgule. peut-être que chez toi ce sera une virgule (ou autre chose)

        cordialement

        ****************données type_voie*****************

        {ABBAYE;AGGLOMERATION;AIRE;PETITE ALLEE;ALLEE;ANCIEN CHEMIN;ANCIENNE ROUTE;ANSE;ARCADE;AUTOROUTE;PETITE AVENUE;AVENUE;BARRIERE;BAS CHEMIN;BASTIDE;BASTON;BEGUINAGE;BERGE;BOIS;BOUCLE;GRAND BOULEVARD;GRANDE ENSEMBLE;BOULEVARD;BOURG;BUTTE;CALE;CAMP;CAMPAGNE;CAMPING;CARRE;CARREAU;CARREFOUR;CARRIERE;CASTEL;CAVEE;CENTRE;CHALET;CHAPELLE;CHARMILLE;CHATEAU;CHAUSSEE;HAUT CHEMIN;PETIT CHEMIN;VIEUX CHEMIN;CHEMIN VICINAL;CHEMIN;CHEMINEMENT;CHEZ;CITE;CLOITRE;CLOS;COL;COLLINE;CONTOUR;CORNICHE;COTE;COTAU;COTTAGE;COUR;COURS;DARSE;DEGRE;DESCENTE;DIGUE;DOMAINE;ECLUSE;EGLISE;ENCEINTE;ENCLAVE;ENCLOS;ESCALIER;ESPACE;ESPLANADE;ETANG;FAUBOURG;FERME;FONTAINE;FORT;FORUM;FOSSE;FOYER;GALERIE;GARE;GARENNE;GRANDE RUE;GRILLE;GRIMPETTE;GROUPE;GROUPEMENT;HALLE;HAMEAU;HIPPODROME;HLM;ILE;IMMEUBLE;PETITE IMPASSE;IMPASSE;JARDIN;JETEE;LEVEE;LIEU DIT;LOTISSEMENT;MAIL;MAISON FORESTIERE;MANOIR;MARCHE;MAS;METRO;MONTEE;MOULIN;MUSEE;NOUVELLE ROUTE;PALAIS;PARC;PARKING;PARVIS;PASSAGE;PASSAGE À NIVEAU;PASSE;PASSERELLE;PATIO;PAVILLON;PERIPHERIQUE;PERISTYLE;PETITE ROUTE;PETITE RUE;PLACE;PLACIS;PLAGE;PLAINE;PLAN;PLATEAU;POINTE;PONT;PORCHE;PORT;PORTE;PORTIQUE;POTERNE;POURTOUR;PRE;PRESQU'ILE;PROMENADE;QUAI;QUARTIER;RACCOURCI;RAIDILLON;RAMPE;REMPART;RESIDENCE;ROC;ROCADE;ROND POINT;ROQUET;ROTONDE;VIEILLE ROUTE;ROUTE;RUE;RUELLE;SENTE;SENTIER;SQUARE;STADE;STATION;TERRAIN;TERRASSE;TERRE PLEIN;TERTRE;TOUR;TRAVERSE;VAL;VALLEE;VALLON;VENELLE;VIA;VILLA;VILLAGE;VOIE;ZONE;ZONE A URBANISER EN PRIORITE;ZONE ARTISANALE;ZONE D'AMENAGEMENT CONCERTE;ZONE D'AMENAGEMENT DIFFERE;ZONE INDUSTRIELLE}
        0
        1. Bonjour,

          =STXT(G12;TROUVE(" ";G12;1);NBCAR(G12)-TROUVE(" ";G12;1)+1)

          ou

          =STXT(G12;CHERCHE(" ";G12;1);NBCAR(G12)-CHERCHE(" ";G12;1)+1)
          1