Private Sub Workbook_SheetActivate(ByVal Sh As Object)
Const listeFeuilles As String = "Janv/Févr/Mars/Avri/Mai/Juin/Juil/Août/Sept/Octo/Nove/Déce"
Dim lig As Long
If InStr(listeFeuilles, Sh.Name) = 0 Then Exit Sub
ActiveSheet.Unprotect
For lig = 5 To Cells(Rows.Count, "F").End(xlUp).Row - 1
If IsDate(Cells(lig, "F")) And Cells(lig, "D") = 7 Then
Cells(lig, "H").Resize(1, 3).Locked = True
Else
Cells(lig, "H").Resize(1, 3).Locked = False
End If
Next lig
ActiveSheet.Protect
End Sub