1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21
| Private Sub ComboBox1_Click() 'donc à toi de voir l'évènement
Dim TbG, Dcel As Range
With Sheets("Feuil1")
.Range("P1") = .Range("H7") 'si la place est libre, entête H7
.Range("Q1") = .Range("B7") 'si la place est libre, entête B7
.Range("R1") = .Range("J7") 'si la place est libre, entête J7 colonne qui triera les données
.Range("R2") = ComboBox1.Value 'la valeur de la combo donne le filtre
Set Dcel = .Range("B" & .Rows.Count).End(xlUp) 'ça tu le comprends
.AutoFilterMode = False 'par sécurité, j'enlève les filtres, ça ne mange pas de pain
'on crée un filtre avancé qu'on dirige de col P à R, si tu choisis autre ci-dessus que _
P1, Q1, R1, il faudra adapter ci-dessous en conséquence
.Range("B7", Dcel(1, 13)).AdvancedFilter Action:=xlFilterCopy, CriteriaRange:=Range( _
"P1:R2"), CopyToRange:=.Range("P1:Q1"), Unique:=False
'ci-dessous un seul tableau qui reprend la plage filtrée
TbG = .Range("P3").CurrentRegion.Offset(1, 0).Resize(.Range("P3").CurrentRegion.Rows.Count - 1, _
.Range("P3").CurrentRegion.Columns.Count - 1)
ListBox1.List = TbG 'le résultat dans la ListBox
Range("P3").CurrentRegion.Delete 'on supprime la plage filtrée
End With
End Sub |
Partager