Bonjour,
J'essaie d'écrire un code afin de pouvoir trier les données de ma listview en cliquant sur les ColumnHeader mais aucun succès.
Celui-ci m'indique un message d'erreur...
Ce sujet à certainement été traité dans divers tutoriels ou diverses discussions, cependant, après avoir longtemps recherché une réponse à mon problème, je n'ai toujours rien trouvé.
Voici mon code qui permet de remplir ma listview :
Private Sub UserForm_Initialize()
With ListView1
.ListItems.Clear
.ColumnHeaders.Add , , Worksheets("ONGLET").Cells(1, 1), 70
.ColumnHeaders.Add , , Worksheets("ONGLET").Cells(1, 2), 70
.ColumnHeaders.Add , , Worksheets("ONGLET").Cells(1, 3), 70
.ColumnHeaders.Add , , Worksheets("ONGLET").Cells(1, 4), 100
.FullRowSelect = True
.Gridlines = True
Dim i As Long
For i = 2 To Sheets("ONGLET").Range("A65536").End(xlUp).Row
.ListItems.Add , , Worksheets("ONGLET").Cells(i, 1)
.ListItems(.ListItems.Count).ListSubItems.Add , , Worksheets("ONGLET").Cells(i, 2)
.ListItems(.ListItems.Count).ListSubItems.Add , , Worksheets("ONGLET").Cells(i, 3)
.ListItems(.ListItems.Count).ListSubItems.Add , , Worksheets("ONGLET").Cells(i, 4)
Next
End With
End Sub
Et voici mon code afin de permettre le tri :
Private Sub ListView1_ColumnClick(ByVal ColumnHeader As MSComctlLib.ColumnHeader)
ListView1.Sorted = False
ListView1.SortKey = ColumnHeader.Index - 1
If ListView1.SortOrder = lvwAscending Then
ListView1.SortOrder = lvwDescending
Else
ListView1.SortOrder = lvwAscending
End If
ListView1.Sorted = True
End Sub
Il doit me manquer un petit détail dans mon deuxiéme code...
Je vous remercie d'avance pour toutes vos réponses!
AliasOne