Private Function EstOuvré(ByVal LaDate As Date) As Boolean
Dim An As Integer, A As Integer, B As Integer, C As Integer, D As Integer, _
E As Integer, F As Integer, MPâq As Integer, Pâques As Date
An = Year(LaDate): EstOuvré = True
If Weekday(LaDate, vbMonday) > 5 Then EstOuvré = False: Exit Function
If LaDate = DateSerial(An, 1, 1) Then EstOuvré = False: Exit Function
If LaDate = DateSerial(An, 5, 1) Then EstOuvré = False: Exit Function
If LaDate = DateSerial(An, 5, 8) Then EstOuvré = False: Exit Function
If LaDate = DateSerial(An, 7, 14) Then EstOuvré = False: Exit Function
If LaDate = DateSerial(An, 8, 15) Then EstOuvré = False: Exit Function
If LaDate = DateSerial(An, 11, 1) Then EstOuvré = False: Exit Function
If LaDate = DateSerial(An, 11, 11) Then EstOuvré = False: Exit Function
If LaDate = DateSerial(An, 12, 25) Then EstOuvré = False: Exit Function
A = An Mod 19: B = An \ 100: C = (B - 17) \ 25
D = (B - B \ 4 - (B - C) \ 3 + 19 * A + 15) Mod 30
D = D - (D \ 28) * (1 - (D \ 28) * (29 \ (D + 1)) * ((21 - A) \ 11))
E = (An + An \ 4 + D + 2 - B + B \ 4) Mod 7: F = D - E
MPâq = 3 + (F + 40) \ 44: Pâques = DateSerial(An, MPâq, F + 28 - (MPâq \ 4) * 31)
If LaDate = Pâques + 1 Then EstOuvré = False: Exit Function
If LaDate = Pâques + 39 Then EstOuvré = False: Exit Function
If LaDate = Pâques + 50 Then EstOuvré = False: Exit Function
End Function