Bonjour à tous,
Je cherche un moyen de récupérer une plage de données résultant d'un filtre automatique pour la placée dans une listbox.
Voici le code que j'utilise actuellement mais il me donne les premières même filtré et lorsque j'essaye d'appliquer la méthode xlCellTypeVisible j'ai des erreurs dans tous les sens.
Private Sub ComboBox1_Change()
Dim DerCri
Dim pl
Dim Cell As Range, Plage As Range
DerCri = 0
Worksheets("datas1").Range("A1").AutoFilter Field:=1, Criteria1:=ComboBox1.Value
Me.Controls("ComboBox2").Clear
Set mondico = CreateObject("Scripting.Dictionary")
With Sheets("datas1")
DerLig = .[A65000].End(xlUp).Row
For Each Cell In .Range(.Cells(2, 2), .Cells(DerLig, 2)).SpecialCells(xlCellTypeVisible)
If Not mondico.Exists(Cell.Value) Then mondico.Add Cell.Value, Cell.Value
DerCri = DerCri + 1
Next Cell
End With
temp = mondico.Items
Controls("ComboBox2").List = temp
Controls("ComboBox2").Enabled = True
With Sheets("datas1")
DerCri1 = .[A65000].End(xlUp).Row
If DerCri > 1 Then
Set pl = .Range("A2:E" & DerCri + 1)
pl.Name = "resultat"
Me.ListBox1.RowSource = "resultat"
Me.Label1 = "Il y a : " & DerCri & " résultat(s)"
Else
Me.Label1 = "Pas de données correspondantes"
End If
End With
End Sub
Merci d'avance pour vos lumières.
Je cherche un moyen de récupérer une plage de données résultant d'un filtre automatique pour la placée dans une listbox.
Voici le code que j'utilise actuellement mais il me donne les premières même filtré et lorsque j'essaye d'appliquer la méthode xlCellTypeVisible j'ai des erreurs dans tous les sens.
Private Sub ComboBox1_Change()
Dim DerCri
Dim pl
Dim Cell As Range, Plage As Range
DerCri = 0
Worksheets("datas1").Range("A1").AutoFilter Field:=1, Criteria1:=ComboBox1.Value
Me.Controls("ComboBox2").Clear
Set mondico = CreateObject("Scripting.Dictionary")
With Sheets("datas1")
DerLig = .[A65000].End(xlUp).Row
For Each Cell In .Range(.Cells(2, 2), .Cells(DerLig, 2)).SpecialCells(xlCellTypeVisible)
If Not mondico.Exists(Cell.Value) Then mondico.Add Cell.Value, Cell.Value
DerCri = DerCri + 1
Next Cell
End With
temp = mondico.Items
Controls("ComboBox2").List = temp
Controls("ComboBox2").Enabled = True
With Sheets("datas1")
DerCri1 = .[A65000].End(xlUp).Row
If DerCri > 1 Then
Set pl = .Range("A2:E" & DerCri + 1)
pl.Name = "resultat"
Me.ListBox1.RowSource = "resultat"
Me.Label1 = "Il y a : " & DerCri & " résultat(s)"
Else
Me.Label1 = "Pas de données correspondantes"
End If
End With
End Sub
Merci d'avance pour vos lumières.