Trie colonne dans ListView
Bonjour,
J'essaie de trier dans un ordre croissant ou décroissant des nombres se trouvant dans la même colonne et faisant partie d'une Listview. Donc voici le code:
' ------ Tri d'une colonne -------
Private Sub ListView1_ColumnClick(ByVal ColumnHeader As MSComctlLib.ColumnHeader)
'Sens de trie
If ListView1.SortOrder = lvwAscending Then
ListView1.SortOrder = lvwDescending
Else
ListView1.SortOrder = lvwAscending
End If
'Quel est la colonne à trier
ListView1.SortKey = ColumnHeader.Index - 1
'Trie
ListView1.Sorted = True
End Sub
Ce code marche très bien pour du texte, mais pour des chiffres le résultat n'est pas bon. Voici le résultat obtenu pour mes chiffres:
1107
114
1314
567
64
Alors que le résultat devrait-être:
67
114
567
1107
1314
Comment puis-je faire?
Merci d'avance,
ppil
J'essaie de trier dans un ordre croissant ou décroissant des nombres se trouvant dans la même colonne et faisant partie d'une Listview. Donc voici le code:
' ------ Tri d'une colonne -------
Private Sub ListView1_ColumnClick(ByVal ColumnHeader As MSComctlLib.ColumnHeader)
'Sens de trie
If ListView1.SortOrder = lvwAscending Then
ListView1.SortOrder = lvwDescending
Else
ListView1.SortOrder = lvwAscending
End If
'Quel est la colonne à trier
ListView1.SortKey = ColumnHeader.Index - 1
'Trie
ListView1.Sorted = True
End Sub
Ce code marche très bien pour du texte, mais pour des chiffres le résultat n'est pas bon. Voici le résultat obtenu pour mes chiffres:
1107
114
1314
567
64
Alors que le résultat devrait-être:
67
114
567
1107
1314
Comment puis-je faire?
Merci d'avance,
ppil
Configuration: Windows Vista Internet Explorer 7.0 Excel 2003
4 réponses
-
Bonjour,
Je sais que ce thème a souvent été abordé, mais en consultant le forum, je n'ai pas trouvé de réponse à mon problème.
Si quelqu'un peut m'aider, je suis preneur.
ppil -
Voici le lien qui pourra résoudre ton problème :
https://silkyroad.developpez.com/VBA/ListView/#LII-F -
j'ai rencontré le meme pb et j'ai trouver une réponse la :
https://www.microsoft.com/en-us/download/details.aspx?id=55984 -
Bonjour, avec un format cela fonctionne mais ce n'est pas très joli car les zéros non significatifs sont alors affichés. Mais cela fonctionne.
ex: .ListItems(j).ListSubItems.Add , , Format(rsT.Fields(63).Value, "000")
La valeur 25 sera affichée comme 025.