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 trier par ordre croissant chiffre - 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.