Private Sub Workbook_SheetActivate(ByVal Sh As Object)
If Sh.Name = "F1" Then Exit Sub
Dim PlageB As Range, PlageC As Range, PlageD As Range, PlageE As Range, PlageF As Range, PlageG As Range, PlageH As Range, PlageO As Range, Plage As Range
With Sheets("F1")
Set PlageB = .Range("B4:B5,B8,B33:B36,B40,B42:B43,B45,B48:B52,B54")
Set PlageC = .Range("C30:C32,C37:C39,C44,C53,C55:C57,C65:C66,C69")
Set PlageD = .Range("D4,D8,D11:D17,D28,D52")
Set PlageE = .Range("E11:E16,E37,E39,E53:E54,E65:E67")
Set PlageF = .Range("F4,F11:F16,F31,F33:F37,F40:F43,F45,F48:F57")
Set PlageG = .Range("G11:G16,G31,G33:G37,G40:G43,G45,G48:G57")
Set PlageH = .Range("H11:H17,H30:H31,H33:H37,H40:H43,H45,H48:H57,H65:H67,H69")
Set PlageO = .Range("O28")
Set Plage = Union(PlageB, PlageC, PlageD, PlageE, PlageF, PlageG, PlageH, PlageO)
If Application.CountA(Plage) < Plage.Count Then
.Activate
Plage.Select
MsgBox "Merci de bien vouloir remplir les cellules sélectionnées !", vbCritical, "ATTENTION ..."
End If
End With
End Sub