Private Sub CommandButton1_Click()
Dim m As Byte, n As Byte, Opt(1 To 5) As String
n = IIf(CheckBox1, 1, 0) + IIf(CheckBox2, 2, 0) + IIf(CheckBox3, 4, 0) + IIf(CheckBox4, 8, 0) + IIf(CheckBox5, 16, 0)
For i = 1 To 5
If Me.Controls("CheckBox" & i) Then
m = m + 1
Opt(m) = Me.Controls("CheckBox" & i).Caption
End If
Next
With Sheets("Feuil1")
.AutoFilterMode = False
.Range("A:C").AutoFilter
Select Case n
Case 1, 2, 4, 8, 16
.Range("A:C").AutoFilter Field:=2, Criteria1:=Opt(1)
Case 3, 5, 6, 9, 10, 12, 17, 18, 20, 24
.Range("A:C").AutoFilter Field:=2, Criteria1:=Opt(1), Operator:=xlOr, Criteria2:=Opt(2)
Case 7, 11, 13, 14, 19, 21, 22, 25, 26, 28
.Range("A:C").AutoFilter Field:=2, Criteria1:=Opt(1), Operator:=xlOr, Criteria2:=Opt(2), Operator:=xlOr, Criteria3:=Opt(3)
Case 15, 23, 27, 29, 30
.Range("A:C").AutoFilter Field:=2, Criteria1:=Opt(1), Operator:=xlOr, Criteria2:=Opt(2), Operator:=xlOr, Criteria3:=Opt(3), Operator:=xlOr, Criteria4:=Opt(4)
Case Else
.Range("A:C").AutoFilter Field:=2
End Select
End With
End Sub