Private Sub Workbook_Open()
Dim xsh As Worksheet
For Each xsh In ThisWorkbook.Worksheets
CouleurOnglet xsh
Next xsh
End Sub
Private Sub Workbook_SheetChange(ByVal sh As Object, ByVal Target As Range)
If Not Intersect(Target, sh.Range("b3")) Is Nothing Then CouleurOnglet sh
End Sub
Sub CouleurOnglet(sh As Worksheet)
If IsNumeric(sh.Name) Then
On Error GoTo Err_Date
If Weekday(sh.Range("b3")) = vbSunday Then
sh.Tab.Color = RGB(255, 0, 0)
Else
sh.Tab.Color = RGB(30, 200, 255)
End If
End If
Exit Sub
Err_Date:
MsgBox "La date <" & sh.Range("b3") & "> de l'onglet <" & sh.Name & "> est sans doute erronée."
sh.Tab.Color = RGB(0, 0, 0)
End Sub