OVH Cloud OVH Cloud

Tri par date dans un ListBox

2 réponses
Avatar
Ciginfo
Bonjour,
Comment faire pour trier des dates au format JJ/MM/AA dans un ListBox de
façon croissante ?
Il n'y a pas de probleme avec le format numerique mais comme mes dates sont
suivies d'un nom (string) la conversion s'en trouve problèmatique.
merci bien

François

2 réponses

Avatar
X
Bonsoir,

Tu as donc
date + string

Soit
jj/mm/aa + string

Alors tu peux prendre un seconde liste avec la propriété sorted=true, et
tu fais ce qui suit:
list2.clear ' liste destination triée (sorted=true)
for i = 0 to list1.listcount - 1 ' liste origine
list2.additem list1.list(i)
next i
Et ta liste 2 est classé par date...

Si tu veux un tri dans un ordre différent, tu fais une boucle inversée
list3.clear ' + sortedúlse
for i = list2.listcount-1 to 0 step -1
list3.additem list2.list(i)
next i


Et si tu ne veux pas utiliser de listes, tu peux faire des tris bulles:
dim ligne() as string
dim trans as string
dim i as long
dim j as long
dim k as long
'
k = list1.listcount
redim ligne(k)
for i = 0 to k - 1 ' décharge la liste -> variables
ligne(i+1) = list1.list(i)
next i
'
for j = 1 to k
for i = 0 to k -1
if ligne(i) > ligne(i+1) then
trans = ligne(i)
ligne(i) = ligne(i+1)
ligne(i+1) = trans
endif
next i
next j
'
list1.clear ' remise variables -> liste
for i = 1 to k ' décharge la liste -> variables
list1.additem ligne(k)
next i

Je n'ai rien testé (tout fait de mémoire), si ça coince, fait signe :o)

Cordialement :o)
------------------------------



"Ciginfo" a écrit dans le message de news:
432da6b6$0$5385$
Bonjour,
Comment faire pour trier des dates au format JJ/MM/AA dans un ListBox de
façon croissante ?
Il n'y a pas de probleme avec le format numerique mais comme mes dates
sont suivies d'un nom (string) la conversion s'en trouve problèmatique.
merci bien

François



Avatar
Ciginfo
OK bien compris, merci beaucoup

François


"X" <.> a écrit dans le message de news:

Bonsoir,

Tu as donc
date + string

Soit
jj/mm/aa + string

Alors tu peux prendre un seconde liste avec la propriété sorted=true,
et tu fais ce qui suit:
list2.clear ' liste destination triée (sorted=true)
for i = 0 to list1.listcount - 1 ' liste origine
list2.additem list1.list(i)
next i
Et ta liste 2 est classé par date...

Si tu veux un tri dans un ordre différent, tu fais une boucle inversée
list3.clear ' + sortedúlse
for i = list2.listcount-1 to 0 step -1
list3.additem list2.list(i)
next i


Et si tu ne veux pas utiliser de listes, tu peux faire des tris bulles:
dim ligne() as string
dim trans as string
dim i as long
dim j as long
dim k as long
'
k = list1.listcount
redim ligne(k)
for i = 0 to k - 1 ' décharge la liste -> variables
ligne(i+1) = list1.list(i)
next i
'
for j = 1 to k
for i = 0 to k -1
if ligne(i) > ligne(i+1) then
trans = ligne(i)
ligne(i) = ligne(i+1)
ligne(i+1) = trans
endif
next i
next j
'
list1.clear ' remise variables -> liste
for i = 1 to k ' décharge la liste -> variables
list1.additem ligne(k)
next i

Je n'ai rien testé (tout fait de mémoire), si ça coince, fait signe :o)

Cordialement :o)
------------------------------



"Ciginfo" a écrit dans le message de news:
432da6b6$0$5385$
Bonjour,
Comment faire pour trier des dates au format JJ/MM/AA dans un ListBox de
façon croissante ?
Il n'y a pas de probleme avec le format numerique mais comme mes dates
sont suivies d'un nom (string) la conversion s'en trouve problèmatique.
merci bien

François