Option Explicit: Option Base 1
Sub Worksheet_Change(ByVal Target As Range)
If Target.Count > 1 Then Exit Sub
If Not Intersect(Target, [B1]) Is Nothing Then
Extraire
End If
End Sub
Sub Extraire()
Dim Phase$, T, T2, i%, j%, IndT2%
[A5:CA65000].ClearContents ' Efface tableau actuel
Phase = [B1]
T = Sheets("Feuil3").[A1].CurrentRegion ' Transfert BDD dans array
ReDim T2(UBound(T), UBound(T, 2)) ' Dimension tableau de sortie
IndT2 = 1
For i = 2 To UBound(T)
If T(i, 1) = Phase Then ' Si Status=celui attendu
For j = 1 To UBound(T, 2) ' Tranefert données dans array de sortie
T2(IndT2, j) = T(i, j)
Next j
IndT2 = IndT2 + 1
End If
Next i
[A5].Resize(UBound(T2, 1), UBound(T2, 2)) = T2 ' Restitution résultat dans feuille
End Sub