1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38
| Dim lannee As Integer, Feries(1 To 13, 1 To 2), x As Integer
Sub essai()
lannee = 2015'à changer en fonction du besoin, ce n'est qu'un exemple
MsgBox Paques(lannee)
'tableau des jours fériés français y compris Lundi de Pentecote
Feries(1, 1) = CDate("1/1/" & lannee): Feries(1, 2) = "Jour de l'An"
Feries(2, 1) = Paques(lannee): Feries(2, 2) = "Pâques"
Feries(3, 1) = Feries(2, 1) + 1: Feries(3, 2) = "L. de Pâques"
Feries(4, 1) = CDate("1/5/" & lannee): Feries(4, 2) = "F. du Travail"
Feries(5, 1) = CDate("8/5/" & lannee): Feries(5, 2) = "Armist. 46"
Feries(6, 1) = Feries(2, 1) + 39: Feries(6, 2) = "Ascension"
Feries(7, 1) = Feries(2, 1) + 49: Feries(7, 2) = "Pentecôte"
Feries(8, 1) = Feries(2, 1) + 50: Feries(8, 2) = "L. de Pent."
Feries(9, 1) = CDate("14/7/" & lannee): Feries(9, 2) = "F. Nationale"
Feries(10, 1) = CDate("15/8/" & lannee): Feries(10, 2) = "Assomption"
Feries(11, 1) = CDate("1/11/" & lannee): Feries(11, 2) = "Toussaint"
Feries(12, 1) = CDate("11/11/" & lannee): Feries(12, 2) = "Armistice 1919"
Feries(13, 1) = CDate("25/12/" & lannee): Feries(13, 2) = "Noël"
For x = 1 To 13
MsgBox Feries(x, 1) & " : " & Feries(x, 2)
Next
End Sub
'ci-dessous, la fonction
Function Paques(annee As Integer) As Date
Dim A, B, C, D
A = (19 * (annee Mod 19) + (annee \ 100) - ((annee \ 100) \ 4) - _
((8 * (annee \ 100) + 13) \ 25) + 15) Mod 30
B = annee \ 4 + annee
C = ((A \ 28) * (29 \ (A + 1)) * ((21 - (annee Mod 19)) \ 11) - 1) * (A \ 28) + A
D = 28 + C - ((B + C + 2 + ((annee \ 100) \ 4) - (annee \ 100)) Mod 7)
If D <= 31 Then
Paques = DateValue(CStr(D) & "/3/" & CStr(annee))
Else
Paques = DateValue(CStr(D - 31) & "/4/" & CStr(annee))
End If
End Function |
Partager