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

Signaler
Messages postés
36
Date d'inscription
mercredi 4 octobre 2000
Statut
Membre
Dernière intervention
29 juin 2004
-
Messages postés
39
Date d'inscription
vendredi 29 février 2008
Statut
Membre
Dernière intervention
19 juin 2009
-
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

Messages postés
39
Date d'inscription
vendredi 29 février 2008
Statut
Membre
Dernière intervention
19 juin 2009

merci, bon courage
Messages postés
7
Date d'inscription
mardi 11 février 2003
Statut
Membre
Dernière intervention
28 juin 2009

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
Messages postés
234
Date d'inscription
mercredi 25 octobre 2000
Statut
Membre
Dernière intervention
5 octobre 2012

Génial + amélioration de Tioneb impec. Merci
Messages postés
193
Date d'inscription
dimanche 16 décembre 2001
Statut
Membre
Dernière intervention
29 juillet 2015

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.
Afficher les 13 commentaires