Extraction de chaine

Résolu
Bonjour,

J'aimerais a partir d'une cellule contenant une adresse complète,extraire la partie entre les chiifres.
exemple: Mr Dupont 42 rue de la fosse 75620 paris

Résultat : rue de la fosse.

Merçi d'avance

4 réponses

  • Votes
  • Date
  • Date décroissante
  1. désolé ,mais en fait c'est une formule que j'aurais aimé avoir.
    toutes mes excuses.
    merci
    1. Bonsoir,

      je n'ai pas cherché à faire simple mais voici une formule matricielle qui fonctionne sur l'exemple fourni :
      SUPPRESPACE(STXT(A1;MIN(SI((ESTNUM(--STXT($A$1;LIGNE(INDIRECT("1:"&NBCAR($A$1)-1));1)))*(NON(ESTNUM(--STXT($A$1;1+LIGNE(INDIRECT("1:"&NBCAR($A$1)-1));1))));LIGNE(INDIRECT("1:"&NBCAR($A$1)-1))+1;9^9));MAX(SI((ESTNUM(--STXT($A$1;LIGNE(INDIRECT("2:"&NBCAR($A$1)));1)))*(NON(ESTNUM(--STXT($A$1;LIGNE(INDIRECT("1:"&NBCAR($A$1)-1));1))));LIGNE(INDIRECT("1:"&NBCAR($A$1)-1))+1;0))-MIN(SI((ESTNUM(--STXT($A$1;LIGNE(INDIRECT("1:"&NBCAR($A$1)-1));1)))*(NON(ESTNUM(--STXT($A$1;1+LIGNE(INDIRECT("1:"&NBCAR($A$1)-1));1))));LIGNE(INDIRECT("1:"&NBCAR($A$1)-1))+1;9^9))))
      A1 contient l'adresse.
      La formule est à valider par CTRL+MAJ+ENTER.

      cdlt
      1. Salut JvDo

        Là tu as fait fort!

        Maintenant si le demandeur préfère une (bonne) formule à une macro .....

        Bonne soirée et bon week end

        Cordialement
      2. Salut,

        mais je pense que nihcoc regrettera ta macro s'il a quelques milliers de lignes à traiter !!

        cdlt
    2. Merçi a tous ,mais j'utilise une vieille version d'excel et je ne peux pas dépasser 255 caractères.
      si vous aviez une formule plus simple je suis preneur.
      merçi
      1. Bien sûr, il y a plus simple :
        =SUPPRESPACE(STXT($A$1;REGEX.TROUVE($A$1;"\d\D";1)+1;REGEX.TROUVE($A$1;"\D\d";-1)-REGEX.TROUVE($A$1;"\d\D";1)))

        Seulement, pour l'utiliser, il faut installer la macro complémentaire Morefunc de Laurent Longre.
        Je te laisse la trouver sur le web.

        cdlt
      2. Bonjour j'ai essayé d'instaler "Morefun,mais il refuse de s'instaler avec excel 95.
        merci quand même pour tout.
      3. curieux, Morefunc est compatible avec 95.

        sinon, une solution toute simple est de décomposer la formule indigeste en 3 morceaux:
        en B1 :
        =MIN(SI((ESTNUM(--STXT($A1;LIGNE(INDIRECT("1:"&NBCAR($A1)-1));1)))*(NON(ESTNUM(--STXT($A1;1+LIGNE(INDIRECT("1:"&NBCAR($A1)-1));1))));LIGNE(INDIRECT("1:"&NBCAR($A1)-1))+1;9^9))

        en C1 :
        =MAX(SI((ESTNUM(--STXT($A1;LIGNE(INDIRECT("2:"&NBCAR($A1)));1)))*(NON(ESTNUM(--STXT($A1;LIGNE(INDIRECT("1:"&NBCAR($A1)-1));1))));LIGNE(INDIRECT("1:"&NBCAR($A1)-1))+1;0))

        et en D1 :
        =SUPPRESPACE(STXT($A1;$B1;$C1-$B1)

        cdlt
      4. Merci a toi JvDo ,ça marche très bien,c'est super
        Tchao