Re : Cascade à 22 niveaux et affichage dans une listbox
Exact, le problème est double: l'affectation par List ne marche pas et si plusieurs lignes à afficher elle s'écrasent.
Donc tout mettre dans un tableau à 2 axes:
Sub filtre()
Dim Elmt() As String
ReDim Elmt(0 To Sheets("Numero_de_Serie").Cells(Application.Rows.Count, 2).End(xlUp).Row, 0 To [Ma_Plage].Columns.Count - 1)
Me.ListBox1.Clear
ligne = 0
For i = 1 To [Ma_Plage].Rows.Count
ok = True
For n = 1 To [Ma_Plage].Columns.Count
If Not Range("Ma_Plage").Cells(i, n) Like Me("comboBox" & n) Then ok = False
Next n
If ok Then
Me.ListBox1.AddItem
Me.ListBox1.ListIndex = Me.ListBox1.ListCount - 1
For k = 1 To [Ma_Plage].Columns.Count
Elmt(ligne, k - 1) = Range("Ma_Plage").Cells(i, k).Value
If (k - 1) = 5 Then
Elmt(ligne, k - 1) = i
End If
Next k
ligne = ligne + 1
End If
Next i
Me.ListBox1.List = Elmt()
On Error Resume Next
' ActiveSheet.ShowAllData
' [A1].AutoFilter Field:=1, Criteria1:=Me.ComboBox1
' If Me.ComboBox2 <> "*" Then [A5].AutoFilter Field:=2, Criteria1:=Me.ComboBox2
' [A1].AutoFilter Field:=3, Criteria1:=Me.ComboBox3
' [A1].AutoFilter Field:=4, Criteria1:=Me.ComboBox4
End Sub
La on se rend compte de la limite du champ List pour l'affichage en grille de données.
N'est il pas nécessaire puisque vous parlez de "base de données" d'utiliser Access ou un RAD comme Windev ?
pyfux