1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20
| Private Sub Worksheet_Change(ByVal Target As Range)
Dim CritB As Variant, CritC As Variant, CritD As Variant
Dim LastLig As Long
Application.ScreenUpdating = False
If InStr("B3C3D3", Target.Address(0, 0)) > 0 Then
With ActiveSheet
.AutoFilterMode = False
LastLig = .Cells(.Rows.Count, 1).End(xlUp).Row
CritB = IIf(IsDate(.Range("B3").Value), Format(.Range("B3").Value, "dd/mm/yyyy"), "")
CritC = IIf(UCase(.Range("C3").Value) = "TOUS", "", .Range("C3").Value)
CritD = IIf(UCase(.Range("D3").Value) = "TOUS", "", .Range("D3").Value)
With .Range("A5:AJ" & LastLig)
If CritB <> "" Then .AutoFilter Field:=1, Criteria1:=CritB
If CritC <> "" Then .AutoFilter Field:=4, Criteria1:=CritC
If CritD <> "" Then .AutoFilter Field:=36, Criteria1:=CritD
End With
End With
End If
End Sub |