Sub essai2()
d1 = #1/1/2008#
D2 = Now ' date et heure
MsgBox NbJoursOuvres(Int(d1), Int(D2))
End Sub
Function NbJoursOuvres(début, fin)
Dim i As Integer, d As Long, nfériés As Integer, témoin As Boolean
Dim fériés(1 To 11)
an = Year(début)
If début > fin Then
NbJoursOuvres = 0
Else
paques = DateSerial(an, 3, 23) + ((2 * (an Mod 4) + (4 * (an Mod 7) + _
(6 * (((19 * (an Mod 19)) + 24) Mod 30) + 5))) Mod 7) + _
((19 * (an Mod 19) + 24) Mod 30) - 1
fériés(1) = DateSerial(an, 1, 1)
fériés(2) = DateSerial(an, 5, 1)
fériés(3) = DateSerial(an, 5, 8)
fériés(4) = DateSerial(an, 7, 14)
fériés(5) = DateSerial(an, 8, 15)
fériés(6) = DateSerial(an, 11, 1)
fériés(7) = DateSerial(an, 11, 11)
fériés(8) = DateSerial(an, 12, 25)
fériés(9) = paques + 1
fériés(10) = paques + 39
fériés(11) = paques + 50
NbJoursOuvres = 0
For d = début To fin
témoin = False
For i = 1 To 11
If d = fériés(i) Then témoin = True
Next i
If Weekday(d) <> 1 And Weekday(d) <> 7 And Not témoin Then NbJoursOuvres = NbJoursOuvres + 1
Next d
End If
End Function