Option Explicit
Option Base 1
Sub Extraire()
Dim i As Integer, n As Single, j As Single, m As Single, t, a(), maxi As Single
t = Range("A1").CurrentRegion
ReDim t(1 To UBound(t), 23)
ReDim a(1 To UBound(t), 23)
For i = 2 To Cells(1, Columns.Count).End(xlToLeft).Column
If LCase(Cells(i, 21)) = "oui" Then
n = n + 1
For j = 1 To 23
t(n, j) = Cells(i, j)
Next j
maxi = Cells(Rows.Count, 1).End(xlUp).Row
Else
m = m + 1
If m > maxi Then Exit For
For j = 1 To 23
a(m, j) = Cells(i, j)
Next j
End If
Next i
Feuil2.[A10].Resize(UBound(t, 1), 23) = t
Feuil2.[A25].Resize(UBound(a, 1), 23) = a
End Sub