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

  1. 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
    0
    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
      0
    2. Bonjour j'ai essayé d'instaler "Morefun,mais il refuse de s'instaler avec excel 95.
      merci quand même pour tout.
      0
    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
      0
    4. Merci a toi JvDo ,ça marche très bien,c'est super
      Tchao
      0
  2. 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
    0
    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
      0
    2. Salut,

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

      cdlt
      0
  3. désolé ,mais en fait c'est une formule que j'aurais aimé avoir.
    toutes mes excuses.
    merci
    0