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

  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
    0
    1. 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+
      0
      1. Bonjour,

        Super merci ca marche super bien,

        mais mon but est de faire ca en code vba

        Cordialement
        0
        1. Contributeur
          Il fallait le dire dès le départ : Tu as bien demandé "une fonction", pourtant, pas "un code" !
          0
      2. 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).
        0
        1. Bonjour raymond et merci de votre aide

          oui c'est toute a fait ca

          merci

          cordialement
          0
          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 ?
            0