Sub AppliquerCouleursMFC()
Dim r As Range, lig&, mfc1&, mfc2&, mfc3&, dat&, wd As Byte, a$, m As Range
Set r = [D17:AH32]
lig = 15 'ligne des dates
mfc1 = [K7].Interior.ColorIndex
mfc2 = [L7].Interior.ColorIndex
mfc3 = [S7].Interior.ColorIndex
Application.ScreenUpdating = False
If Not IsError([MFC]) Then [MFC].Interior.ColorIndex = xlNone 'RAZ
For Each r In r
dat = r.Offset(lig - r.Row)
wd = Weekday(dat)
a = r.Offset(lig - r.Row).Address
If wd = 1 Then _
r.Interior.ColorIndex = mfc1: Set m = Union(r, IIf(m Is Nothing, r, m))
If Evaluate("SUM((FERIES=" & a & ")*(CJF=""PY"")*(" & wd & "<>1))") Then _
r.Interior.ColorIndex = mfc2: Set m = Union(r, IIf(m Is Nothing, r, m))
If Evaluate("SUM((FERIES=" & a & ")*(CJF=""NP"")*(" & wd & "<>1))") Then _
r.Interior.ColorIndex = mfc3: Set m = Union(r, IIf(m Is Nothing, r, m))
Next
ActiveSheet.Names.Add "MFC", m 'mémorisation par un nom défini dans la feuille
ActiveSheet.Calculate 'recalcul des fonctions SommeCouleur
End Sub
Sub EffacerCouleursMFC()
If Not IsError([MFC]) Then [MFC].Interior.ColorIndex = xlNone 'RAZ
ActiveSheet.Calculate 'recalcul des fonctions SommeCouleur
End Sub