Private Sub Worksheet_Activate()
Dim t, ncol%, d As Object, i&, x$, resu(), e, n&, j%
t = Sheets("Data").ListObjects(1).Range
ncol = UBound(t, 2)
Set d = CreateObject("Scripting.Dictionary")
For i = 2 To UBound(t)
If UCase(t(i, 1)) Like "OFF*" Then
x = t(i, 1) & Chr(1) & t(i, 2)
If Not d.exists(x) Then d(x) = i 'mémorise le numéro de ligne
End If
Next
If d.Count Then
ReDim resu(1 To d.Count, 1 To ncol)
For Each e In d.keys
n = n + 1
i = d(e)
For j = 1 To ncol
resu(n, j) = t(i, j)
Next
Next
If FilterMode Then ShowAllData 'si la feuille est filtrée
[A2].Resize(n, ncol) = resu 'restitution
End If
[A2].Offset(n).Resize(Rows.Count - n - 1, ncol).ClearContents 'RAZ sous le tableau
With UsedRange: End With 'actualise la barre de défilement verticale
End Sub