Private Sub Worksheet_Activate()
If flag Then Exit Sub
Dim dercel As Range, P As Range
Application.ScreenUpdating = False
Range("A5:C" & Rows.Count).ClearContents
With Sheets("Scope")
Set dercel = .[A:C].Find("*", , xlValues, , xlByRows, xlPrevious)
If dercel Is Nothing Then Exit Sub
If dercel.Row < 3 Then Exit Sub
Set P = .Range("A3:C" & dercel.Row)
End With
[A5].Resize(P.Rows.Count) = P.Columns(3).Value
[B5].Resize(P.Rows.Count) = P.Columns(1).Value
[C5].Resize(P.Rows.Count) = P.Columns(2).Value
End Sub
Private Sub Worksheet_Deactivate()
If Range("A5:A" & Rows.Count).SpecialCells(xlCellTypeVisible).Count _
< Rows.Count - 4 Then
MsgBox "Affichez toutes les lignes...", , "STOP"
flag = True: Me.Activate: Application.OnTime 1, "RAZ"
End If
End Sub