EXCEL : Tri de caractères dans un tableau

Résolu
Melanie75 -  
 Melanie75 -
Bonjour tout le monde,

MA QUESTION EST URGENTE !

Pour classer et mettre en valeur les réponses d'un formulaire html, je souhaite créer un fichier excel qui permet que, quand je rentre dans la case A1 ma ligne de réponses
(de la forme file:///C:/Documents%20and%20Settings/formulaire.html?VARIABLE1=reponse1&VARIABLE2=reponse2&VARIABLE3= ....)

Une formule classerait mes réponses dans un tableau en indiquant par exemple que la "reponse1" doit aller dans la case Q3, la "reponse2" dans la case Q53 etc..
Sachant que chacune des variable est separée par "&" et les réponses sont toujours séparées des variables par un "="

J'espère que j'ai bien expliqué mon problème;

MERCI de d'avoir prêté attention à mon problème.
Configuration: Windows 2000
Internet Explorer 6.0

4 réponses

  1. ShaBoo Messages postés 406 Statut Membre 50
     
    Bonjour,

    tu peux essayer ceci :

    Option Explicit
    
    Dim sUrl As String
    
    Sub Test()
    
    Dim aTab1() As String
    Dim aTab2() As String
    Dim iCpt As Integer
    Dim iCpt2 As Integer
    Dim iLenUrl As Integer
    Dim iPosCar As Integer
    Dim sRep As String
    
    sUrl = "file:///C:/Documents%20and%20Settings/formulaire.html?VARIABLE1=reponse1&VARIABLE2=reponse2&VARIABLE3=reponse3"
    
    iLenUrl = Len(sUrl)
    iPosCar = InStr(sUrl, "?")
    
    sRep = Mid(sUrl, iPosCar + 1, iLenUrl - iPosCar)
    
    aTab1() = Split(sRep, "&")
    
    For iCpt = 0 To UBound(aTab1())
        MsgBox aTab1(iCpt)
        aTab2() = Split(aTab1(iCpt), "=")
        For iCpt2 = 0 To UBound(aTab2())
            MsgBox aTab2(iCpt2)
        Next iCpt2
    Next iCpt
    
    End Sub
    0
  2. Papou93 Messages postés 146 Date d'inscription   Statut Membre Dernière intervention   59
     
    Bonjour Melanie75, bonjour ShaBoo,

    Melanie, tu as aussi cette solution, moins "professionnelle" que celle de ShaBoo mais tout aussi fonctionnelle :

    Private Sub CommandButton1_Click()
    ' Exemple du contenu de la cellule A1 de la feuille1 : var1=reponse1&var2=reponse2&var3=reponse3&var4=reponse4&var4=reponse4
    Dim Var(10) As String
    ' Var(0)=Contenu de la cellule A1
    Var(0) = Range("A1")
    ' Var(1...10)=Contenu avant le signe &
    ' Initialisation du tableau de variables
    For n = 1 To 10
      Var(n) = ""
    Next
    n = 0: d = 1
    ' Décomposition de la chaine en A1
    For p = 1 To Len(Var(0))
      If Mid$(Var(0), p, 1) = "&" Then
        n = n + 1
        Var(n) = Mid$(Var(0), d, p - d)
        d = p + 1
      End If
    Next
    ' Affichage des résultats (emplacements des cellules à adapter)
    For X = 3 To n + 3
      Cells(X, 15) = Left(Var(1), InStr(Var(1), "=") - 1)
      Cells(X, 16) = Mid(Var(1), InStr(Var(1), "=") + 1)
    Next
    
    End Sub


    Cordialement.
    0
  3. Papou93 Messages postés 146 Date d'inscription   Statut Membre Dernière intervention   59
     
    Désolé, j'ai joint un mauvais code.
    Voici le bon :

    Private Sub CommandButton1_Click()
    ' Exemple du contenu de la cellule A1 de la feuille1 : var1=reponse1&var2=reponse2&var3=reponse3&var4=reponse4&var4=reponse4
    Dim Var(10) As String
    ' Var(0)=Contenu de la cellule A1
    Var(0) = Range("A1")
    ' Var(1...10)=Contenu avant le signe &
    ' Initialisation du tableau de variables
    For n = 1 To 10
      Var(n) = ""
    Next
    n = 1: d = 1
    ' Décomposition de la chaine en A1
    For p = 1 To Len(Var(0))
      If Mid$(Var(0), p, 1) = "&" Then
        Var(n) = Mid$(Var(0), d, p - d)
        n = n + 1
        d = p + 1
      End If
    Next
    Var(n) = Mid$(Var(0), d)
    ' Affichage des résultats (emplacements des cellules à adapter)
    For x = 3 To n + 2
      Cells(x, 15) = Left(Var(x - 2), InStr(Var(x - 2), "=") - 1)
      Cells(x, 16) = Mid(Var(x - 2), InStr(Var(x - 2), "=") + 1)
    Next
    
    End Sub


    Cordialement.
    0