Private Sub Worksheet_Activate()
Dim plage As Range, i As Long
Application.ScreenUpdating = False
With Sheets("SAISIE")
Set plage = .Range("A5", .Range("A" & Rows.Count).End(xlUp))
End With
On Error Resume Next
[Zone].Delete 'suppression préalable
On Error GoTo 0
plage.EntireRow.Copy 'copie de la plage
[8:8].Insert 'insertion de lignes
Me.Names.Add "Zone", [8:8].Resize(plage.Count) 'mémorisation dans un nom
[Zone].Resize(, 2).Cut [C8]
For i = 11 + plage.Count To 12 Step -1
If Cells(i, 3).Interior.ColorIndex < 0 And Cells(i, 3) <> "" And Cells(i, 4) = "" _
Or Cells(i, 3).Interior.ColorIndex > 0 And Cells(i + 1, 3) = "" _
Or Cells(i, 3) & Cells(i + 1, 3) = "" Then Rows(i).Delete
Next
If [C8] = "" And [C9] <> "" Then Rows(8).Delete
On Error Resume Next 'si la plage Zone a été supprimée
[Zone].Columns(6).ClearContents 'si l'on veut effacer les "x" en colonne D
Range("C1").Select
End Sub