Bonjour.

Je reviens vers vous avec une question concernant le listView sur Excel.

Apparemment, toutes les données dans un listview seraient considérées comme du texte, même les valeurs numériques. Donc cela complique la tache pour faire des tries sur la listView.

Une des solutions que j'ai trouvé, est de rajouter une colonne "width = 0". Dans celle-ci, je convertie chaque chiffre d'un nombre par une lettre avec un "Select Case". Ensuite, je rajoute le code de tri sur la bonne colonne.

Dans l'exemple ci-dessous.
Colonne 1 = texte
Colonne 2 = un nombre
Colonne 3 = Colonne 2 convertie en lettre (Width de la colonne = 0)

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
Lacol = ColumnHeader.Index - 1
    If Lacol = 2  Then 
        Lacol = 3
    end if
 
    UserForm6.ListView1.Sorted = False
 
    UserForm6.ListView1.SortKey = Lacol
 
    If UserForm6.ListView1.SortOrder = lvwAscending Then
        UserForm6.ListView1.SortOrder = lvwDescending
    Else
        UserForm6.ListView1.SortOrder = lvwAscending
    End If
 
    UserForm6.ListView1.Sorted = True
Cela fonctionne parfaitement. Seulement, lorsque la listview fait 10 colonnes et que mes colonnes numériques sont par exemple, colonne 2,4,5,8,9 ...... Cela commence à faire un peu beaucoup de colonnes supplémentaires à rajouter.

Connaissez-vous une autre solution pour trier le listview ?