Private Sub Worksheet_Change(ByVal Target As Range)
Dim c As Range, i As Byte
If Intersect(Target, [B3:C3]) Is Nothing Then Exit Sub
Application.ScreenUpdating = False
[D7:CO7,D19:CO19,D31:CO31,D43:CO43] = "=IF(TEXT(R[2]C[-1],""MMMM"")=TEXT(R[2]C,""MMMM""),"""","" ""&PROPER(TEXT(R[2]C,""MMMM"")))"
[C7:CP7,C19:CP19,C31:CP31,C43:CP43].Borders(xlInsideVertical).LineStyle = xlNone
For Each c In [C7:CO7,C19:CO19,C31:CO31,C43:CO43]
If c.Column = 3 Then
For i = 2 To 7
If c(1, i) = "" Then c(1, i) = ""
Next
ElseIf c <> "" Then
c.Borders(xlEdgeLeft).Weight = xlThin 'bordure gauche
c(1, 2).Resize(, 6) = "" 'les formules des 6 jours suivants sont effacées
End If
Next
End Sub