Este code utilizo para ordenar..
Código:
Private Sub ListView1_ColumnClick( _
ByVal ColumnHeader As MSComctlLib.ColumnHeader)
'lvwAscending ' orden ascendente
'lvwDescending ' orden descendente
With ListView1
If .SortOrder = lvwAscending Then
.SortOrder = lvwDescending
Else
.SortOrder = lvwAscending
End If
.Sorted = True
' columna por la cual se ordena
'( en este caso hay una sola )
.SortKey = 0
End With
End Sub