Sub Accélération()
Dim tabl(), tabl1()
Dim Ws As Worksheet
Dim maplage As Range
Dim i As Long, k As Long, j As Long, z As Long
Dim var1, var2, var3, var4 As String
Application.ScreenUpdating = False
Application.Calculation = xlCalculationManual
Set Ws = Sheets("Feuil2")
With Sheets("Feuil1")
If .Cells(3, 4) <> "" Then var1 = .Cells(3, 4)
If .Cells(4, 4) <> "" Then var2 = .Cells(4, 4)
If .Cells(5, 4) <> "" Then var3 = .Cells(5, 4)
If .Cells(6, 4) <> "" Then var4 = .Cells(6, 4)
End With
With Ws
Set maplage = .Range(.Cells(1, 1), .Cells(.Cells.SpecialCells(xlCellTypeLastCell).Row, .Cells.SpecialCells(xlCellTypeLastCell).Column))
z = 2
tabl = maplage.FormulaLocal
ReDim tabl1(UBound(tabl(), 1), UBound(tabl(), 2))
For i = LBound(tabl()) To UBound(tabl())
If i <> 1 Then
If tabl(i, 2) = var1 Or tabl(i, 2) = var2 Or tabl(i, 2) = var3 Or tabl(i, 2) = var4 Then
For k = LBound(tabl(), 2) To UBound(tabl(), 2)
tabl1(z, k) = tabl(i, k)
Next k
z = z + 1
End If
End If
Next i
End With
maplage.FormulaLocal = tabl1
Application.ScreenUpdating = True
Application.Calculation = xlCalculationAutomatic
End Sub