Bonjour et bienvenue sur le forum
Un essai à tester. Te convient-il ?
Option Explicit
Dim tablo, tabloC
Dim i&, j&, iC&, plage As Range
Sub JoursDeCongé()
tablo = Range("E9:AO" & Range("C" & Rows.Count).End(xlUp).Row)
With Sheets("Liste congé")
tabloC = .Range("B6:C" & .Range("B" & Rows.Count).End(xlUp).Row)
End With
For iC = 1 To UBound(tabloC, 1) 'On complète tabloC pour avoir toujours une date de fin
If tabloC(iC, 2) = "" Then
tabloC(iC, 2) = tabloC(iC, 1)
End If
Next iC
Set plage = Range("F6") 'Il faut définir une plag initiale provisoire
For i = 1 To UBound(tablo, 1)
For j = 1 To UBound(tablo, 2)
For iC = 1 To UBound(tabloC, 1)
If tablo(i, j) >= tabloC(iC, 1) And tablo(i, j) <= tabloC(iC, 2) Then
Set plage = Union(plage, Cells(i + 8, j + 4))
End If
Next iC
Next j
Next i
Range("E9:AO" & Range("C" & Rows.Count).End(xlUp).Row).Interior.Color = xlNone
plage.Interior.Color = RGB(177, 203, 233)
Range("F6").Interior.Color = xlNone
End Sub
Bye !