Salut,
Le grosss pb ds le tri des dates dans une liste c que ces dates sont traduites en texte quand on les affiche ds une liste quelconque. Donc le format habituel français jj/mm/aaaa ne convient pas pour un tri (le format anglais mm/dd/yyyy c moins idiot sauf si c sur +sieurs années). Pour etre sûr, j'adopte le format "yyyy/mm/dd" et là c cool.
Un ex avec une listview :
' Ds Projets/Composants : Microsoft Windows Common Controls 6.0 (SP6) Dim ItemX As ListItem Dim i As Integer Dim Liste_Fichiers()
ReDim Liste_Fichiers(4, 2) Liste_Fichiers(0, 0) = "Fichier_1" Liste_Fichiers(0, 1) = "02/02/2004" Liste_Fichiers(1, 0) = "Fichier_2" Liste_Fichiers(1, 1) = "05/01/2004" Liste_Fichiers(2, 0) = "Fichier_3" Liste_Fichiers(2, 1) = "01/01/2004" Liste_Fichiers(3, 0) = "Fichier_4" Liste_Fichiers(3, 1) = "25/01/2004" Liste_Fichiers(4, 0) = "Fichier_5" Liste_Fichiers(4, 1) = "20/02/2004" ListView1.GridLines = True ' pour afficher les séparations entre lignes et colonnes ListView1.FullRowSelect = True ' pour la sélection de la ligne entière ListView1.View = lvwReport ' affichage détails ListView1.LabelEdit = lvwManual ' pour empecher les modifs ds la 1ere colonne ' Nom des colonnes ListView1.ColumnHeaders.Add , , "Nom", ListView1.Width / 2 ListView1.ColumnHeaders.Add , , "", 0 ' pour le tri sur la date ListView1.ColumnHeaders.Add , , "Date", ListView1.Width / 2 ' Remplissage de la listview For i = LBound(Liste_Fichiers) To UBound(Liste_Fichiers) Set ItemX = ListView1.ListItems.Add(, "K" & i, Liste_Fichiers(i, 0)) ItemX.SubItems(1) = Format(Liste_Fichiers(i, 1), "yyyy/mm/dd") ItemX.SubItems(2) = Liste_Fichiers(i, 1) Next ListView1.SortKey = 1 ListView1.Sorted = True
Pour récupérer le nom du fichier sélectionné :
Private Sub ListView1_ItemClick(ByVal Item As MSComctlLib.ListItem) msgbox = Item End Sub
Cordialement
CanisLupus
|