Aide excel fonction

Résolu
Bonjour,

je souhaiterais savoir s'il existe une fonction permettant de recuperer ceratines données dans une chaine de caractere,
exemple :

la chaine de caractere:

"xx","id":"10001","name":"testcomponent1","lead","yy","id":"10002","name":"testcomponent2","lead","zz","id":"10003","name":"testcomponent3","lead","aa","id":"10004","name":"testcomponent4","lead",

et donc le but est de recuperer juste les "testcomponents" (1,2,3,4)

merci de votre aide

cordialement

6 réponses

  • Votes
  • Date
  • Date décroissante
  1. Contributeur
    Bonjour.

    Voyons si j'ai tout compris :
    Dans la cellule A1 il y a le texte
    "xx","id":"10001","name":"testcomponent1","lead","yy","id":"10002","name":"testcomponent2","lead","zz","id":"10003","name":"testcomponent3","lead","aa","id":"10004","name":"testcomponent4","lead"

    et tu veux trouver en A2 une formule qui donnera comme résultat
    testcomponent1;testcomponent2;testcomponent3;testcomponent4

    On est bien d'accord ?
    1. Bonjour raymond et merci de votre aide

      oui c'est toute a fait ca

      merci

      cordialement
      1. Bonjour à vous deux,
        Si la situation décrite par Raymond est exacte, cette formule fonctionne :
        =STXT(A1;TROUVE("name";A1;1)+7;14) & ";"& STXT(A1;TROUVE("name";A1;TROUVE("name";A1;1)+5)+7;14) & ";" & STXT(A1;TROUVE("name";A1;TROUVE("name";A1;TROUVE("name";A1;1)+5)+5)+7;14) & ";"&STXT(A1;TROUVE("name";A1;TROUVE("name";A1;TROUVE("name";A1;TROUVE("name";A1;1)+5)+5)+5)+7;14) 
        Tous les 14 qu'on peut trouver dans la formule correspondent à la longeur en nombre de caractères de la chaîne de caractère à extraire (testcomponent1 fait 14 caractères).
        1. Bonjour,

          Super merci ca marche super bien,

          mais mon but est de faire ca en code vba

          Cordialement
          1. Contributeur
            Il fallait le dire dès le départ : Tu as bien demandé "une fonction", pourtant, pas "un code" !
        2. Ce code permet de récupérer les valeurs dans les variables tc1, tc2, tc3 et tc4 :
          Sub extraction_chaines()
          Dim tc1, tc2, tc3, tc4, chaine As String
          
          chaine = Range("A1").Value
          
          tc1 = Mid(chaine, InStr(1, chaine, "name") + 7, 14)
          tc2 = Mid(chaine, InStr(InStr(1, chaine, "name") + 5, chaine, "name") + 7, 14)
          tc3 = Mid(chaine, InStr(InStr(InStr(1, chaine, "name") + 5, chaine, "name") + 5, chaine, "name") + 7, 14)
          tc4 = Mid(chaine, InStr(InStr(InStr(InStr(1, chaine, "name") + 5, chaine, "name") + 5, chaine, "name") + 5, chaine, "name") + 7, 14)
          
          MsgBox tc1 & " " & tc2 & " " & tc3 & " " & tc4
          
          End Sub 


          A toi de les utiliser pour les utiliser à ta guise ;)

          A+
          1. Bonjour et merci a tous pour votre aide

            ca marche super reste a moi de les adapter a mon besoin

            merci encore

            Cordialement

            Amine