EXEMPLE DE TRI DANS UNE LISTVIEW (LETTRES,NOMBRES,DATE)

Cara53 Messages postés 36 Date d'inscription mercredi 4 octobre 2000 Statut Membre Dernière intervention 29 juin 2004 - 8 août 2003 à 03:20
simodel Messages postés 38 Date d'inscription vendredi 29 février 2008 Statut Membre Dernière intervention 19 juin 2009 - 5 août 2010 à 11:34
Cette discussion concerne un article du site. Pour la consulter dans son contexte d'origine, cliquez sur le lien ci-dessous.

https://codes-sources.commentcamarche.net/source/7629-exemple-de-tri-dans-une-listview-lettres-nombres-date

simodel Messages postés 38 Date d'inscription vendredi 29 février 2008 Statut Membre Dernière intervention 19 juin 2009
5 août 2010 à 11:34
merci, bon courage
aguess Messages postés 7 Date d'inscription mardi 11 février 2003 Statut Membre Dernière intervention 28 juin 2009
25 juil. 2009 à 15:09
bonjours
je suis nouveau, et j'ai un des difficulter à comprendre ce code ,si j'ai bien compris vous tranformer les dates et les chiffres en format alphabetique pour les trié(mais comment vous faite pour les séparateur de date "/") et la chose que je n'est pas compris c'est l'utilité de "Tag", j'aimerai bien que quelqu'un m'explique à quoi sa sert.
merci
peug Messages postés 232 Date d'inscription mercredi 25 octobre 2000 Statut Membre Dernière intervention 5 octobre 2012
12 mars 2009 à 09:53
Génial + amélioration de Tioneb impec. Merci
cs_Tioneb Messages postés 193 Date d'inscription dimanche 16 décembre 2001 Statut Membre Dernière intervention 29 juillet 2015
27 juin 2008 à 18:20
Merci beaucoup pour cette source. Elle fonctionne très bien. Par contre, quand on range dans l'ordre de la colonne 1 par exemple, puis par la colonne 2 puis on reviens à la 1 et bien on se retrouve avec un ordre inversé. Dans Windows, quand on clique pour trier une colonne, par défaut c'est l'ordre alphabétique. Si on passe à une autre colonne, il "oubli" l'ordre demandé pour la première colonne.

Alors pour ceux qui ont compris ce que j'ai écris (je sais que c'est un peu fouillis) et qui veulent que ça se comporte comme windows, faire les modifications suivantes:

Private Sub ListView1_ColumnClick(ByVal ColumnHeader As MSComctlLib.ColumnHeader)
m_blnDirection(ColumnHeader.Index) = Not m_blnDirection(ColumnHeader.Index)
Select Case ColumnHeader.Index
Case 1
SortListView ListView1, ColumnHeader.Index, ldtString, m_blnDirection(1)
RAZTriage 1 ' <== ajout pour faire comme windows
Case 2
SortListView ListView1, ColumnHeader.Index, ldtNumber, m_blnDirection(2)
RAZTriage 2 ' <== ajout pour faire comme windows
Case 3
SortListView ListView1, ColumnHeader.Index, ldtString, m_blnDirection(3)
RAZTriage 3 ' <== ajout pour faire comme windows
End Select
End Sub

Puis, rajouter cette fonction (dans la form):

Public Function RAZTriage(Sauf As Integer)
Dim i As Integer
For i = 1 To UBound(m_blnDirection())
If i <> Sauf Then
m_blnDirection(i) = False
End If
Next i
End Function

Pour ceux qui ne comprennent pas le fonctionnement de la modif, voici une petite explication. Quand on fait un tri (avec la fonction SortListView), dès qu'elle est terminée, on appelle ma fonction (RAZTriage) en passant comme paramètre le numéro de la colonne qu'on vient juste de traiter. Et la fonction va réinitialiser les variables contenant l'ordre du tri pour chaque colonne (ascendant ou descendant) SAUF celle qu'on vient de trier.
bdl20042000 Messages postés 63 Date d'inscription mercredi 18 août 2004 Statut Membre Dernière intervention 19 mai 2009
13 juin 2008 à 13:16
génial
cs_Danyz Messages postés 98 Date d'inscription dimanche 20 juillet 2003 Statut Membre Dernière intervention 31 octobre 2006
28 août 2005 à 13:10
Vraiment excellent !

Ca serait possible d'avoir 2 options de tri ?
genre tri sur la colonne un par nombre puis tri sur la colonne 2 par texte par exemple
1 A
1 B
1 C
2 A
2 B
etc...

En tout cas 10/10
cs_PaTaTe Messages postés 2126 Date d'inscription mercredi 21 août 2002 Statut Contributeur Dernière intervention 19 février 2021 2
2 avril 2005 à 23:40
c bien sympa oui mais je cherche plutot une chose similaire a Widows (ré-organiser les icones par ...)

si kelk1 a une piste ca serait sympa :)
Sk8cravis Messages postés 8 Date d'inscription samedi 22 février 2003 Statut Membre Dernière intervention 21 septembre 2007
24 janv. 2005 à 17:54
Magnifique !
Merci beaucoup.
Scooby1 Messages postés 48 Date d'inscription dimanche 12 mai 2002 Statut Membre Dernière intervention 26 novembre 2003
29 sept. 2004 à 11:17
Parfait Pile poil ce que je cherchais. Merci ;)
cs_jerms Messages postés 115 Date d'inscription jeudi 8 mai 2003 Statut Membre Dernière intervention 3 janvier 2016
20 mai 2004 à 00:15
en faite j'ai trouvé plus simple pour trier :

Private Sub ListView1_ColumnClick(ByVal ColumnHeader As MSComctlLib.ColumnHeader)
ListView1.SortKey = ColumnHeader.Index - 1
ListView1.SortOrder = (ListView1.SortOrder + 1) Mod 2
End Sub
cs_jerms Messages postés 115 Date d'inscription jeudi 8 mai 2003 Statut Membre Dernière intervention 3 janvier 2016
19 mai 2004 à 23:49
magnifique, c'est ce que je cherchais. En plus c'est simple et efficace.
kergweland Messages postés 1 Date d'inscription mercredi 6 août 2003 Statut Membre Dernière intervention 23 novembre 2003
23 nov. 2003 à 15:15
Tout ce dont j'avais besoin... Merci MetalCoder
Cara53 Messages postés 36 Date d'inscription mercredi 4 octobre 2000 Statut Membre Dernière intervention 29 juin 2004
8 août 2003 à 03:20
10 !!!!!!!! Mec, tu me sauves la vie !!!
Rejoignez-nous