OVH Cloud OVH Cloud

Tri de dates dans listeview

3 réponses
Avatar
Jean
Bonjour à tous,

J'ai un problème avec Listeview pour classer des dates. J'utilise le code
ci-dessous mais j'ai le classement suivant :
29/03/2006
18/05/2006
15/06/2006
08/03/2006
01/05/2006
02/02/2006

On dirait qu'il tri sur le jour seulement sans s'occuper du mois.
Voila mon code

Private Sub UserForm_Initialize()

With ListView1
.ListItems.Clear
.View = lvwReport ' Style de liste
.Gridlines = True ' quadrillage
With .ColumnHeaders
.Clear
.Add , , "col 1"
End With

.ListItems.Add , , CDate("01/05/2006")
.ListItems.Add , , CDate("18/05/2006")
.ListItems.Add , , CDate("29/03/2006")
.ListItems.Add , , CDate("08/03/2006")
.ListItems.Add , , CDate("15/06/2006")
.ListItems.Add , , CDate("01/02/2006")
End With

With ListView1 ' Tri par date en decroissant
.Sorted = True
.SortKey = 0
.SortOrder = lvwDescending
End With
End Sub

Pouvez-vous m'aider ?

Jean

3 réponses

Avatar
JLuc
*Bonjour Jean*,
C'est normal, pour vb, tes dates sont des chaines de caracteres. donc
tri sur le premier, puis en cas d'egalite sur le deuxieme et ainsi de
suite

Bonjour à tous,

J'ai un problème avec Listeview pour classer des dates. J'utilise le code
ci-dessous mais j'ai le classement suivant :
29/03/2006
18/05/2006
15/06/2006
08/03/2006
01/05/2006
02/02/2006

On dirait qu'il tri sur le jour seulement sans s'occuper du mois.
Voila mon code

Private Sub UserForm_Initialize()

With ListView1
.ListItems.Clear
.View = lvwReport ' Style de liste
.Gridlines = True ' quadrillage
With .ColumnHeaders
.Clear
.Add , , "col 1"
End With

.ListItems.Add , , CDate("01/05/2006")
.ListItems.Add , , CDate("18/05/2006")
.ListItems.Add , , CDate("29/03/2006")
.ListItems.Add , , CDate("08/03/2006")
.ListItems.Add , , CDate("15/06/2006")
.ListItems.Add , , CDate("01/02/2006")
End With

With ListView1 ' Tri par date en decroissant
.Sorted = True
.SortKey = 0
.SortOrder = lvwDescending
End With
End Sub

Pouvez-vous m'aider ?

Jean



--
____
( O | O )
--
_oooO_ JLuc _Oooo_

O-O

Avatar
Jean
Pourtant j'utilise Cdate qui convertit les chaines en date.
.
N'y a-t-il vraiment aucun moyen de les trier ?

Jean

"JLuc" a écrit dans le message de news:

*Bonjour Jean*,
C'est normal, pour vb, tes dates sont des chaines de caracteres. donc tri
sur le premier, puis en cas d'egalite sur le deuxieme et ainsi de suite

Bonjour à tous,

J'ai un problème avec Listeview pour classer des dates. J'utilise le code
ci-dessous mais j'ai le classement suivant :
29/03/2006
18/05/2006
15/06/2006
08/03/2006
01/05/2006
02/02/2006

On dirait qu'il tri sur le jour seulement sans s'occuper du mois.
Voila mon code

Private Sub UserForm_Initialize()

With ListView1
.ListItems.Clear
.View = lvwReport ' Style de liste
.Gridlines = True ' quadrillage
With .ColumnHeaders
.Clear
.Add , , "col 1"
End With

.ListItems.Add , , CDate("01/05/2006")
.ListItems.Add , , CDate("18/05/2006")
.ListItems.Add , , CDate("29/03/2006")
.ListItems.Add , , CDate("08/03/2006")
.ListItems.Add , , CDate("15/06/2006")
.ListItems.Add , , CDate("01/02/2006")
End With

With ListView1 ' Tri par date en decroissant
.Sorted = True
.SortKey = 0
.SortOrder = lvwDescending
End With
End Sub

Pouvez-vous m'aider ?

Jean



--
____
( O | O )
--
_oooO_ JLuc _Oooo_

O-O





Avatar
JLuc
*Bonjour Jean*,
Je pense que tu devrais : soit les triées avant si elles viennent d'une
plage de données, soit les mettre sous forme 2006/03/15
Ou encore, mais plus long a mettre en oeuvre, les mettres sur une
feuille, les triées et les remettre dans ta listview.
Tu vois, des solutions, on en trouve, mais savoir laquelle te conviens
le mieux... :')

Pourtant j'utilise Cdate qui convertit les chaines en date.
.
N'y a-t-il vraiment aucun moyen de les trier ?

Jean

"JLuc" a écrit dans le message de news:

*Bonjour Jean*,
C'est normal, pour vb, tes dates sont des chaines de caracteres. donc tri
sur le premier, puis en cas d'egalite sur le deuxieme et ainsi de suite

Bonjour à tous,

J'ai un problème avec Listeview pour classer des dates. J'utilise le code
ci-dessous mais j'ai le classement suivant :
29/03/2006
18/05/2006
15/06/2006
08/03/2006
01/05/2006
02/02/2006

On dirait qu'il tri sur le jour seulement sans s'occuper du mois.
Voila mon code

Private Sub UserForm_Initialize()

With ListView1
.ListItems.Clear
.View = lvwReport ' Style de liste
.Gridlines = True ' quadrillage
With .ColumnHeaders
.Clear
.Add , , "col 1"
End With

.ListItems.Add , , CDate("01/05/2006")
.ListItems.Add , , CDate("18/05/2006")
.ListItems.Add , , CDate("29/03/2006")
.ListItems.Add , , CDate("08/03/2006")
.ListItems.Add , , CDate("15/06/2006")
.ListItems.Add , , CDate("01/02/2006")
End With

With ListView1 ' Tri par date en decroissant
.Sorted = True
.SortKey = 0
.SortOrder = lvwDescending
End With
End Sub

Pouvez-vous m'aider ?

Jean



-- ____
( O | O )
--
_oooO_ JLuc _Oooo_

O-O






--
____
( O | O )
--
_oooO_ JLuc _Oooo_

O-O