Private Sub OK_Click() 'bouton "OK"
Dim li As Range 'déclare la variable li (LIgne)
Dim r As Range 'déclare la variable r (Recherche)
Application.ScreenUpdating = False 'masques les changements à l'écran
'condition : si la ComboBox1 n'est pas vide
If Me.ComboBox1.Value <> "" Then
'filtre automatique, critère ComboBox1
cf.AutoFilter Field:=3, Criteria1:=Me.ComboBox1.Value
End If 'fin de la condition
'condition : si la ComboBox2 n'est pas vide
If Me.ComboBox2.Value <> "" Then
'filtre automatique, critère ComboBox2
cf.AutoFilter Field:=4, Criteria1:=Me.ComboBox2.Value
End If 'fin de la condition
'condition : si la ComboBox3 n'est pas vide
If Me.ComboBox3.Value <> "" Then
'filtre automatique, critère ComboBox3
cf.AutoFilter Field:=5, Criteria1:=Me.ComboBox3.Value
End If 'fin de la condition
If Me.TextBox1.Value <> "" Then 'condition : si la TextBox1 n'est pas vide
'boucle sur toutes les lignes visibles de la plage pl
For Each li In pl.SpecialCells(xlCellTypeVisible).Rows
Set r = li.Find(Me.TextBox1.Value, , xlValues, xlPart) 'définit la recherche (recherche la valeur de la TextBox1 dans la ligne li)
If r Is Nothing Then li.Hidden = True 'si aucune occurrence trouvé, masque la ligne
Next li 'prochaine ligne de la boucle
End If 'fin de la condition
Application.ScreenUpdating = True 'affiche les changements à l'écran
Unload Me 'vide et ferme l'UserForm
End Sub
Private Sub CommandButton2_Click() 'bouton "Anuler"
Unload Me 'vide et ferme l'UserForm
End Sub