Excel 2010 comment inbriqué plusieurs STXT

Résolu
Bonjour,

J'ai en colonne A
[toto-AMS_2100_SAS-0_LUN069]
[toot-AMS_2100_SAS-0_LUN069]
[toto-AMS_2100_SAS-0_LUN093]
[az-AMS_2300_SAS-0_LUN014]
[ca-USP_VM_SAS-0_LUN012]

Je voudrais en colonne B
AMS_2100
AMS_2100
AMS_2100
AMS_2300
USP_VM

Et colonne C
LUN069
LUN069
LUN093
LUN014
LUN012

J'ai essayé avec la fonction stxt (=STXT(D20;CHERCHE("AMS_2100";D20);8)) mais comment imbriqué plusieurs STXT en fonction de AMS_2100 ou AMS_2300 ou USP_VM ?

Merci de votre aide.

9 réponses

  1. En fait c'est beaucoup plus compliqué que ça :
    CAr dans la colonne A les valeurs sont :

    Données d'entreprise supprimés à la demande de l'auteur Modération CCM

    Merci en tout cas pour votre aide précieuse

    Sam
    0
    1. Contributeur
      En fait c'est beaucoup plus compliqué que ça :

      QUEL LE RAPPORT ENTRE LA DEMANDE INITIALE ET CETTE DERNIERE DEMANDE?

      C'est N'IMPORTE QUOI !!!

      Merci en tout cas pour votre aide précieuse : des excuses auraient mieux valu pour avoir fait passer du temps pour rien à 3 bénévoles!
      0
    2. Contributeur
      Salut michel.....
      t'as rien compris là, en fait , c'était une question pour le 1° Avril et elle est arrivée en retard;
      Je suis quand même bluffé par la réponse à ma première proposition, qui est pour mémoire:
      "Merci mais c'est pas / que je recherche".
      Effectivement, maintenant après une bonne séance de casse tête, on comprend pourquoi!!
      Crdlmnt

      PS: On va quand même lui souhaiter bonne route, car vu comme il fonctionne, l'ami SAM, il risque de se foutre en l'air à tous les virages!!!
      0
  2. Contributeur
    Bonjour les anciens

    on peut avec une formule "toute simple" en se dopant au doliprane (voir peut-^tre une matricielle mais...)
    =GAUCHE(DROITE(A2;NBCAR(A2)-CHERCHE("-";A2));CHERCHE("_";DROITE(A2;NBCAR(A2)-CHERCHE("-";A2))))&GAUCHE(DROITE(DROITE(A2;NBCAR(A2)-CHERCHE("-";A2));NBCAR(DROITE(A2;NBCAR(A2)-CHERCHE("-";A2)))-CHERCHE("_";DROITE(A2;NBCAR(A2)-CHERCHE("-";A2))));CHERCHE("_";DROITE(DROITE(A2;NBCAR(A2)-CHERCHE("-";A2));NBCAR(DROITE(A2;NBCAR(A2)-CHERCHE("-";A2)))-CHERCHE("_";DROITE(A2;NBCAR(A2)-CHERCHE("-";A2)))))-1)


    mais peut-^tre "aussi" avec une fonction personnalisée de 2 lignes
    Function entre_underscore(ref As String) As String 
         epure = Split(ref, "-")(1) 
         entre_underscore = Split(epure, "_")(0) & "_" & Split(epure, "_")(1) 
    End Function


    démo: la formule décomposée par cellules intermédiaire
    https://www.cjoint.com/?3DgmdfUpV5m

    Michel
    0
    1. Contributeur
      OK , bonjour,pas de quoi être désolé...l'essentiel est de revenir.
      avez vous vu le modèle qui traite les deux parties à extraire. (sachant que la proposition de Pépé devrait convenir aussi pour la partie finale)
      crdlmnt
      0
      1. @vaucluse et @pépé :

        Désolé pour la réponse tardive.
        Pour la colonne C ok.

        Il me reste la colonne B.

        Merci en tout cas pour votre aide.

        Sam
        0
        1. Contributeur
          Bonjour Pépé

          ... reste à savoir ce qu'en pense demandeur, et vu tout le laconisme de sa dernière réponse, ,je crains que l'on ne sache jamais.

          C'est un peu trop souvent la règle sur le forum... dommage

          Bonne route
          Au plaisir car c'en est un.

          Bien amicalement
          0
          1. Bonjjour Vaucluse,

            C'est vrai, ma première formule pose problème car j'étais parti du principe que chaque extraction avait le même nombre de caractères.

            A+

            pépé
            0
            1. une solution ?

              En colonne B

              =STXT(A1;CHERCHE("-";A1)+1;8)

              En colonne C

              =GAUCHE(DROITE(A1;7);6)

              A+

              pépé
              0
              1. Contributeur
                Salut Pépé
                c'est effectivement beaucoup plus simple pépé... mais sauf erreur je ne pense que ça ce fonctionne pas entre:
                AMS_2300 à 8 caractères et USP_VM qui n'en a que 6

                De plus mais là je suis moins sur, je pense qu'il risque d'y avoir un blanc par moment après le dernier crochet, mais cela vient peut être du copier coller que j'ai fait sur le message pour monter mon test.

                bien cordialement
                0
            2. Merci mais c'est pas / que je recherche.

              cdlt
              0
              1. Contributeur
                Ah bon??? si vous le dites!
                mais voila quand même un modèle pas trop loin de votre demande, non?
                https://www.cjoint.com/?BDfqyV2ohua
                si à l'occasion,vous vous sentez moins laconique dites nous ce qui ne convient pas?
                0
            3. Contributeur
              Bonjour

              essayez avec pour un texte en A1:
              =STXT(GAUCHE(A1;(TROUVE("/";SUBSTITUE(A1;"_";"/";2))-1));TROUVE("-";A1;1)+1;10)

              qui devrait fonctionner à condition que le départ du texte à extraire soit bien placé après le 1° tiret et la fin avant le 2° underscore

              Note le 10 à la fin n'a pas beaucoup d'importance, il suffit que ce nombre soit >que le nombre de caractères à extraire
              Bonne chance
              0