Bonjour,
Dans un userform, et à partir d'un filtrage que je fais à travers une combobox, je récupère les données filtrées automatiquement dans une listbox (5 colonnes : date / Intervenant / Code d'intervention / Eléments d'intervention / Commentaire). Tout ceci marche.
Je souhaite maintenant trouver un code permettant que ces données soient automatiquement triées en fonction des dates par ordre décroissant.
Je ne souhaite pas réaliser ce tri, en amont, directement sur ma source de données.
Comment puis-je procéder ?
Merci pour vos retours.
Titoo
Ci-dessous mon code alimentant ma listbox :
'Procédure de recherche (historique) de l'ensemble des interventions
'contenues dans la SourceIntervention sur la vanne sélectionnée
Feuil4.Activate
Me.ListBox1.ColumnHeads = False
Me.ListBox1.ColumnCount = 16
Me.ListBox1.ColumnWidths = "55;80;0;50;260;200;0;0;0;0;0;0;0;0;0;0"
'Déclaration des variables
Dim Critere
Dim DerniereLigne As Integer, x As Integer
'Affectation des variables
Critere = cboVannemasquée.Value
'On récupère la dernière ligne de la source de données
If Cells(Rows.Count, 1).End(xlUp).Row = 1 Then
DerniereLigne = 2
Else
DerniereLigne = Cells(Rows.Count, 1).End(xlUp).Row
End If
'On efface le contenu de la liste à chaque recherche.
ListBox1.Clear
ListBox1.BackColor = RGB(200, 250, 255)
'On parcours la source de données de la ligne à la dernière ligne
For x = 1 To DerniereLigne
'On teste le critère, ici la valeur du cboVannemasquée avec la source de données
If Cells(x, 3) = Critere Then
'On écrit dans la listBox
Me.ListBox1.AddItem Cells(x, 1)
Me.ListBox1.List(Me.ListBox1.ListCount - 1, 1) = Cells(x, 2)
Me.ListBox1.List(Me.ListBox1.ListCount - 1, 2) = Cells(x, 3)
Me.ListBox1.List(Me.ListBox1.ListCount - 1, 3) = Cells(x, 4)
Me.ListBox1.List(Me.ListBox1.ListCount - 1, 4) = Cells(x, 5)
Me.ListBox1.List(Me.ListBox1.ListCount - 1, 5) = Cells(x, 6)
End If
Next x
End Sub
Dans un userform, et à partir d'un filtrage que je fais à travers une combobox, je récupère les données filtrées automatiquement dans une listbox (5 colonnes : date / Intervenant / Code d'intervention / Eléments d'intervention / Commentaire). Tout ceci marche.
Je souhaite maintenant trouver un code permettant que ces données soient automatiquement triées en fonction des dates par ordre décroissant.
Je ne souhaite pas réaliser ce tri, en amont, directement sur ma source de données.
Comment puis-je procéder ?
Merci pour vos retours.
Titoo
Ci-dessous mon code alimentant ma listbox :
'Procédure de recherche (historique) de l'ensemble des interventions
'contenues dans la SourceIntervention sur la vanne sélectionnée
Feuil4.Activate
Me.ListBox1.ColumnHeads = False
Me.ListBox1.ColumnCount = 16
Me.ListBox1.ColumnWidths = "55;80;0;50;260;200;0;0;0;0;0;0;0;0;0;0"
'Déclaration des variables
Dim Critere
Dim DerniereLigne As Integer, x As Integer
'Affectation des variables
Critere = cboVannemasquée.Value
'On récupère la dernière ligne de la source de données
If Cells(Rows.Count, 1).End(xlUp).Row = 1 Then
DerniereLigne = 2
Else
DerniereLigne = Cells(Rows.Count, 1).End(xlUp).Row
End If
'On efface le contenu de la liste à chaque recherche.
ListBox1.Clear
ListBox1.BackColor = RGB(200, 250, 255)
'On parcours la source de données de la ligne à la dernière ligne
For x = 1 To DerniereLigne
'On teste le critère, ici la valeur du cboVannemasquée avec la source de données
If Cells(x, 3) = Critere Then
'On écrit dans la listBox
Me.ListBox1.AddItem Cells(x, 1)
Me.ListBox1.List(Me.ListBox1.ListCount - 1, 1) = Cells(x, 2)
Me.ListBox1.List(Me.ListBox1.ListCount - 1, 2) = Cells(x, 3)
Me.ListBox1.List(Me.ListBox1.ListCount - 1, 3) = Cells(x, 4)
Me.ListBox1.List(Me.ListBox1.ListCount - 1, 4) = Cells(x, 5)
Me.ListBox1.List(Me.ListBox1.ListCount - 1, 5) = Cells(x, 6)
End If
Next x
End Sub