talking
Messages postés343Date d'inscriptiondimanche 30 novembre 2003StatutMembreDernière intervention19 août 2006
-
2 févr. 2005 à 17:17
crenaud76
Messages postés4172Date d'inscriptionmercredi 30 juillet 2003StatutMembreDernière intervention 9 juin 2006
-
3 févr. 2005 à 00:06
Voilà j'ai une variable du style :
test = "Str1|Sti1|Sto1|Sta1,Str2|Sti2|Sto2|Sta1,etc"
et moi je voudrais retourner un par un:
Str1
Sti1
STo1
etc
moi ce que j'avais pensé faire c'est faire un split sur "," et faire une for qui va faire un split sur "|" sur chaque élément
En fait ce que je voudrais savoir c'est est-ce qu'il existe une fonction qui me permettrait de retourner le nombre d'élément dans une chaine de caractéres entourés par ","
mrdep1978
Messages postés402Date d'inscriptionjeudi 25 novembre 2004StatutMembreDernière intervention 7 juin 20097 2 févr. 2005 à 17:26
Tu peux utiliser la fonction UBound, qui renvoie l'indice max d'un tableau
Un exemple vaut mieux qu'un long discours (je pense)
Dim Test as String
Dim ls_SplitVirgule() as String
Dim ls_SplitBarre() as String
Dim li_Index as Integer
Dim li_IndexBarre as Integer
Test = "Str1|Sti1|Sto1|Sta1,Str2|Sti2|Sto2|Sta1,etc"
ls_SplitVirgule = split(Test, ",")
For li_Index = 0 to Ubound(ls_SplitVirgule)
ls_SplitBarre = split(ls_SplitVirgule(li_Index), "|")
For li_IndexBarre = 0 to Ubound(ls_SplitBarre)
Debug.Print ls_SplitBarre(li_IndexBarre)
Next li_IndexBarre
Next li_Index
crenaud76
Messages postés4172Date d'inscriptionmercredi 30 juillet 2003StatutMembreDernière intervention 9 juin 200628 3 févr. 2005 à 00:06
ET ne pourrais tu pas plutot faire un replace des "," par des "|" dnas la chaine de base, pui sun split sur les "|", ce serait plus rapide que ton double splittage dans une boucle for !! Plus rapide à executer et aussi a coder, car cela ne fait qu'une seule ligne de code (ci-dessous en gras)
Dim Test As String,Res() As String, i As Long
Test = "Data1|Data2,Data3|Data4"
Res = Split(Replace$(Test, ",", "|"), "|")
For i = lbound(Res) to Ubound(Res)
Debug.Print Res(i)
Next