cs_scoubi
Messages postés5Date d'inscriptionjeudi 23 janvier 2003StatutMembreDernière intervention11 juin 2013 11 juil. 2012 à 14:08
Plus simplement: pour reprendre le commentaire de imanemaftouh, lorsque vous cliquer sur une colonne celui passe de l'ascendant vert le descendant et inversement ! (faut changer le "ListBox" par le nom de votre listbox.
Private Sub ListBox_ColumnClick(ByVal ColumnHeader As MSComctlLib.ColumnHeader)If ListBox.SortOrder lvwAscending Then ListBox.SortOrder lvwDescending Else ListBox.SortOrder = lvwAscending 'si Trie ASC alors DESC sinon ASC
ListBox.SortKey = ColumnHeader.Index - 1 'Sélectionne le numéro de l'entête de colonne
ListBox.Sorted = True 'Active le trie
End Sub
cs_manou3010
Messages postés2Date d'inscriptionmercredi 7 avril 2010StatutMembreDernière intervention11 mai 2010 23 avril 2010 à 01:26
merci bi1
Galactus13
Messages postés335Date d'inscriptionlundi 29 septembre 2008StatutMembreDernière intervention16 août 20231 2 août 2009 à 02:37
10/10, merci bien pour cette fonction très simple !
imanemaftouh
Messages postés5Date d'inscriptionjeudi 7 mai 2009StatutMembreDernière intervention 3 juillet 2009 9 mai 2009 à 20:26
oui c'est utile,mais on peut faire un simple trie par bulle,ou on fesaisune seule bouttons ki nous fé 2 trie le premier a-z et l autre de z_a,simplement on utulise listbox.sorted
et apré on fai l algo de permutation la case dernier avec la premier l'avant dernier avec la 2,ém et ainssi d suite,comme si on clic la premier foi ça sera d z_a 2 eme clic d a_z et ainssi d suite
pavid
Messages postés5Date d'inscriptionjeudi 2 décembre 2004StatutMembreDernière intervention27 octobre 2005 24 janv. 2009 à 20:37
Ce code m'a été utile
Merci
odin3
Messages postés3Date d'inscriptionlundi 19 novembre 2007StatutMembreDernière intervention14 janvier 2008 19 nov. 2007 à 15:31
je l'ai essayé telle qu'il est écrit en haut de cette page mais il ne fonctionne pas aurais-je oublié de modifiée quelque chose?
cs_Jielde
Messages postés226Date d'inscriptionmardi 17 octobre 2000StatutMembreDernière intervention 1 décembre 2010 20 avril 2006 à 21:31
L'avantage aussi c'est que l'on peut faire dans l'ordre décroissant.
Dim Tbl$()
Dim Ntbl$()
Dim CH As Boolean
ReDim Tbl(Liste.ListCount - 1)
ReDim Ntbl(Liste.ListCount - 1)
mtb = Liste.ListCount - 1
For n = 0 To mtb
Tbl(n) = Liste.List(n)
Ntbl(n) = ""
Next n
Liste.Clear
For n = LBound(Tbl) To UBound(Tbl)
For a = LBound(Tbl) To UBound(Tbl)
If a >= n Then
If StrComp(Tbl(n), Tbl(a), vbTextCompare) = -1 Then
tx = Tbl(n)
Tbl(n) = Tbl(a)
Tbl(a) = tx
End If
End If
Next a
Next n
For n = UBound(Tbl) To LBound(Tbl) Step -1
Liste.AddItem Tbl(n), 0 'Ajoute Tbl(n) tout en haut de la liste
Next n
gmni
Messages postés91Date d'inscriptionmercredi 6 novembre 2002StatutMembreDernière intervention20 mars 2009 26 nov. 2002 à 20:09
Ce code est tres utile et leger a la fois, surtout si l'on utilise de drag&drop sur ses ListBox... Merci a l'auteur
roswell117
Messages postés61Date d'inscriptionjeudi 31 janvier 2002StatutMembreDernière intervention18 novembre 2005 27 févr. 2002 à 15:51
je veux pas passer pour un imbécile mais, c'est pas plus simple d'utiliser la propriété 'sorted' de la ListBox, "les éléments d'un contrôle sont triés automatiquement dans l'ordre alphabétique".
je sais pas vraiment car j'utilises pas vraiment les ListBox, mais bon, ca à l'air (beaucoup) plus simpleque ce que tu marques.
11 juil. 2012 à 14:08
Private Sub ListBox_ColumnClick(ByVal ColumnHeader As MSComctlLib.ColumnHeader)If ListBox.SortOrder lvwAscending Then ListBox.SortOrder lvwDescending Else ListBox.SortOrder = lvwAscending 'si Trie ASC alors DESC sinon ASC
ListBox.SortKey = ColumnHeader.Index - 1 'Sélectionne le numéro de l'entête de colonne
ListBox.Sorted = True 'Active le trie
End Sub
23 avril 2010 à 01:26
2 août 2009 à 02:37
9 mai 2009 à 20:26
et apré on fai l algo de permutation la case dernier avec la premier l'avant dernier avec la 2,ém et ainssi d suite,comme si on clic la premier foi ça sera d z_a 2 eme clic d a_z et ainssi d suite
24 janv. 2009 à 20:37
Merci
19 nov. 2007 à 15:31
20 avril 2006 à 21:31
Dim Tbl$()
Dim Ntbl$()
Dim CH As Boolean
ReDim Tbl(Liste.ListCount - 1)
ReDim Ntbl(Liste.ListCount - 1)
mtb = Liste.ListCount - 1
For n = 0 To mtb
Tbl(n) = Liste.List(n)
Ntbl(n) = ""
Next n
Liste.Clear
For n = LBound(Tbl) To UBound(Tbl)
For a = LBound(Tbl) To UBound(Tbl)
If a >= n Then
If StrComp(Tbl(n), Tbl(a), vbTextCompare) = -1 Then
tx = Tbl(n)
Tbl(n) = Tbl(a)
Tbl(a) = tx
End If
End If
Next a
Next n
For n = UBound(Tbl) To LBound(Tbl) Step -1
Liste.AddItem Tbl(n), 0 'Ajoute Tbl(n) tout en haut de la liste
Next n
26 nov. 2002 à 20:09
27 févr. 2002 à 15:51
je sais pas vraiment car j'utilises pas vraiment les ListBox, mais bon, ca à l'air (beaucoup) plus simpleque ce que tu marques.