Re,
le code commenté
Private Sub Worksheet_Change(ByVal Target As Range)
Const genre As String = "$D$5:$AF$5" ' plage des noms des genres
Dim datas, lig As Long, ok As Long
Dim genre1 As Long, genre2 As Long, plGenre As Range
If Not Intersect(Target, Range("A2:B2")) Is Nothing Then
' si un filtre change
Rows.Hidden = False ' afficher tout
If Application.CountA("A1:B1") <> 0 Then
' si au moins un filtre non vide
datas = [A6:AF6].Resize(Cells(Rows.Count, 1).End(xlUp).Row - 5) 'données films
' si filtre non vide on recherche la colonne du filtre demandé
If [A2] <> "" Then genre1 = Rows(5).Find([A2].Value, , xlFormulas, xlWhole).Column
If [B2] <> "" Then genre2 = Rows(5).Find([B2].Value, , xlFormulas, xlWhole).Column
For lig = 1 To UBound(datas)
' un filtre => ok+1 si vide ou genre = 1 sur la ligne
If genre1 = 0 Then ok = 1 Else ok = datas(lig, genre1)
If genre2 = 0 Then ok = ok + 1 Else ok = ok + datas(lig, genre2)
' masquer ligne si total filtres <> 2
Rows(lig + 5).Hidden = ok <> 2
Next lig
End If
End If
End Sub
vois si suffisant pour toi
eric