EXCEL : Tri de caractères dans un tableau
Résolu
Melanie75
-
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.
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:
- EXCEL : Tri de caractères dans un tableau
- Liste déroulante excel - Guide
- Word et excel gratuit - Guide
- Déplacer colonne excel - Guide
- Si ou excel - Guide
- Excel moyenne - Guide
4 réponses
Bonjour,
tu peux essayer ceci :
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
Bonjour Melanie75, bonjour ShaBoo,
Melanie, tu as aussi cette solution, moins "professionnelle" que celle de ShaBoo mais tout aussi fonctionnelle :
Cordialement.
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.
Désolé, j'ai joint un mauvais code.
Voici le bon :
Cordialement.
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.