Bonjour Deo,
voici, à tester et, probablement, à adapter (coordonnées cellules) dans ton environnement de travail.
Heure à rentrer dans le même format (12:45).
Private Sub Worksheet_Change(ByVal Target As Range)
'
If Not Application.Intersect(Target, Range("D34:D35")) Is Nothing Then
iFlag1 = IIf(Hour([D34]) = 0, 24, Hour([D34]))
iFlag2 = Choose(iFlag1, 28, 28, 29, 30, 31, 24, 24, 24, 24, 24, 25, 25, 26, 26, 27, 27, 28, 28, 28, 28, 28, 28, 28, 28)
[D37] = Cells(iFlag2, [D35] + 1)
End If
'
End Sub
Bon travail!
A+