Tri Listview

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

236listview-aliasone.zip (14.33 Ko)

Bonjour

Edit

Tu as un message d'erreur style Erreur de compilation : Type défini par l'utilisateur non défini

Si c'est le cas il faut que tu coches dans le menu Outils --->Références "Microsoft Window Common controls 6.0 (SP6)"

Bonjour Banzai64 et merci pour ta réponse!

J'ai bien rajouté l'instruction manquante que tu m'as transmise mais le message d'erreur (Type d'utilisateur non défini!?) apparait toujours...

Je pense qu'il y´a un problème à la base du code car il me sélectionne la partie suivante:

(ByVal ColumnHeader As MSComctlLib.ColumnHeader)

Dois-je écrire quelque chose dans un module afin que le code ColumnClick soit pris en compte?

Merci d'avance!

Bonjour

Désolé mal lu le problème

Regardes mon edit du post précédent

Bonjour Banzai64,

Je te remercie pour ton message, cela a trés bien fonctionné!

Meilleures salutations,

AliasOne

Rechercher des sujets similaires à "tri listview"