Bonjour,
J'ai créer une listBox dans le but de filtrer les éléments d'une feuille excel. Je remplie cette ListBox avec une plage de cellule que j'applique dans les propriété de la ListBox. de plus j'utilise la fonction MultiCritere pour des sélections multiples.
Comment il faut faire pour indexer la liste. Le but étant de maintenir la sélection de la liste après le filtre.
et comment délectionner les éléments de façon efficace sans les détruires.
j'ai réussi a faire le tout, mais en ajoutant une colonne dans ma ListBox. Je crois qu'il y a une méthode plus simple que la mienne pour le faire et de plus, ma méthode a une faille énorme si je ne sais pas la taille de ma ListBox.
Je peux joindre mon exemple si cela peut vous être utile. pour l'instant, je vous joint une partie de mon code.
Merci de votre aide.
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
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39 Private Sub CommandButton1_Click() Dim MyArray(12) As String Dim InString() As String Dim i, j, x As Integer For i = 0 To Me.ListBox1.ListCount - 1 If Me.ListBox1.Selected(i) = True Then MyArray(i) = ListBox1.Column(1, i) Else MyArray(i) = 0 End If Next i 'Debug.Print ListBox1.List(i) InString = Filter(MyArray, 0, False) ActiveSheet.Range("$D$1:$F$15").AutoFilter Field:=2, Criteria1:=InString, Operator:=xlFilterValues InString = Filter(MyArray, 0, False) For i = 0 To UBound(InString) Debug.Print InString(i) Next i For i = 0 To 11 For j = 0 To 11 If MyArray(i) Like ListBox1.Column(1, j) Then x = ListBox1.Column(0, j) - 1 ListBox1.Selected(x) = True End If Next j Next i End Sub
Partager