EXCEL : Tri de caractères dans un tableau

Résolu/Fermé
Melanie75 - 31 oct. 2007 à 14:29
 Melanie75 - 1 nov. 2007 à 21:58
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.
A voir également:

4 réponses

ShaBoo Messages postés 392 Date d'inscription mercredi 12 septembre 2007 Statut Membre Dernière intervention 5 septembre 2009 50
31 oct. 2007 à 17:08
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
Papou93 Messages postés 146 Date d'inscription mercredi 4 avril 2007 Statut Membre Dernière intervention 5 juin 2012 59
31 oct. 2007 à 18:01
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
Papou93 Messages postés 146 Date d'inscription mercredi 4 avril 2007 Statut Membre Dernière intervention 5 juin 2012 59
1 nov. 2007 à 20:34
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
Merci vous tous!
0