Private Sub Worksheet_Change(ByVal Target As Range)
If Intersect(Target, [A2:G2]) Is Nothing Then Exit Sub
Dim critere, ubcrit%, col, ubcol%, passage As Byte, tablo, ncol%, n&, i&, j%, test As Boolean
critere = [A2:G2]
ubcrit = UBound(critere, 2)
col = Array(3, 4, 5, 6, 7, 8, 9, 10, 2, 1)
ubcol = UBound(col)
For passage = 1 To 2 'car 2 tableaux de résultats
tablo = IIf(passage = 1, Feuil2, Feuil3).[A1].CurrentRegion
ncol = UBound(tablo, 2)
n = 0
For i = 3 To UBound(tablo)
If tablo(i, ncol) <> "DESACTIVER" Then
For j = 1 To ubcrit
test = IIf(critere(1, j) = "", True, critere(1, j) = tablo(i, col(j - 1)))
If Not test Then GoTo 1
Next j
n = n + 1
For j = 0 To ubcol: tablo(n, j + 1) = tablo(i, col(j)): Next j
If n = IIf(passage = 1, 19, 9) Then Exit For
End If
1 Next i
IIf(passage = 1, [A5], [A26]).Resize(n, ubcol + 1) = tablo 'restitution
If n < IIf(passage = 1, 19, 9) Then Range(Rows(IIf(passage = 1, 5, 26) + n), Rows(IIf(passage = 1, 23, 34))).ClearContents 'RAZ dessous
Next passage
End Sub