Private Sub Worksheet_Activate()
Dim r As Range, masque As Range, o As Object
Application.ScreenUpdating = False
DrawingObjects.Delete 'supprime tous les objets de la feuille
Cells.Delete 'RAZ nécessaire chez vous ???
Set r = [H36:H45,H49:H70,H74:H78,H82:H95,H99:H134,H138:H159,H163:H194,H198:H202,H206:H219]
Feuil1.Cells.Copy [A1] 'Feuil1 est le CodeName de la feuille
[A1].Copy [A1] 'pour alléger la mémoire
For Each r In r
If r = "" Then Set masque = Union(r, IIf(masque Is Nothing, r, masque))
Next
If Not masque Is Nothing Then masque.EntireRow.Hidden = True
If [J8] = "RA" Or [J8] = "Perso" Then
For Each o In DrawingObjects 'pour masquer les cases à cocher
If Not Intersect(o.TopLeftCell, Rows("12:29")) Is Nothing Then o.Visible = False
Next
Rows("12:29").Hidden = True
End If
Me.PageSetup.PrintArea = "$H:$P" 'zone d'impression à adapter au besoin
End Sub