Et pourtant ....
C'est quoi l'erreur qu'il te mets ?????
ta essayer avec deux des fois que t'es changer les index en commencants
à 0 ( si jamais l'erreur est index out of bounds ca doit etre ca...)
Sinon ce que tu peut faire c'est ceci :
lvwListview.SortKey = lvwListview.ColumnHeaders.Item(3).SubItemIndex
lvwListview.SortOrder = lvwAscending 'valeur par defaut
lvwListview.Sorted = True
PS : atention ca marche que pour les lettres. Si ta des chiffres, ou des dates c'est autrement.
Pour les chiffres ta ka metre des espaces devant :
For intvar = 1 To lvwListview.ListItems.Count
strTemp = Format(lvwListview.ListItems.Item(intvar).SubItems(1))
lvwListview.ListItems.Item(intvar).SubItems(2) = String(5 -
Len(strTemp), " ") & strTemp
Next intvar
'suivis de ce que j'ai mis un peu plus haut
Pour les dates : convertis les en "yyyy/mm/dd" tu fait le tri et tu reconverti en "dd/mm/yyyy"
(Un peu barbare ptet mai ca marche tres bien :p )
Public Sub Fonction_Tri_Dates(lvwListeView As ListView, typeDeTri As
ListSortOrderConstants, indexColonne As Integer, strFormat As String,
normFormat As String)
Dim dte As String
Dim dat As String
Dim intVar As Integer
If indexColonne > 0 Then
'tu transforme en strFormat = "yyyy/mm/dd"
For intVar = 1 To lvwListeView.ListItems.Count
dat
= Format(lvwListeView.ListItems.Item(intVar).SubItems(indexColonne))
dte = Format$(dat, strFormat)
lvwListeView.ListItems.Item(intVar).SubItems(indexColonne) = dte
Next intVar
Else
For intVar = 1 To lvwListeView.ListItems.Count
dat = Format(lvwListeView.ListItems.Item(intVar).Text)
dte = Format$(dat, strFormat)
lvwListeView.ListItems.Item(intVar).Text = dte
Next intVar
End If
lvwListeView.SortOrder = typeDeTri
lvwListeView.SortKey = lvwListeView.ColumnHeaders.Item(indexColonne + 1).SubItemIndex
lvwListeView.Sorted = True
If indexColonne > 0 Then
'tu transforme en normFormat = "dd/mm/yyyy"
For intVar = 1 To lvwListeView.ListItems.Count
dte
= Format$(lvwListeView.ListItems.Item(intVar).SubItems(indexColonne),
normFormat)
lvwListeView.ListItems.Item(intVar).SubItems(indexColonne) = dte
Next intVar
Else
For intVar = 1 To lvwListeView.ListItems.Count
dte
= Format$(lvwListeView.ListItems.Item(intVar).Text, normFormat)
lvwListeView.ListItems.Item(intVar).Text = dte
Next intVar
End If
End Sub
En esperant que tt ceci tora aider... Bon courage ^^






