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 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55
| Function JourFerie(datetraitement As Date) As Boolean
Dim Paques As String
Dim Pentecote As String
Dim Ascension As String
Dim an As Integer
Dim Mois As Integer
Dim jour As Integer
Dim i As Integer
Dim j As Integer
'partie pour retrouver paques, ascension et pentecote (jours feries non fixes)
an = CInt(Mid(datetraitement, 7, 4))
Mois = 3
jour = 23 + modulo(19 * modulo(an, 19) + 24, 30) + modulo(2 * modulo(an, 4) + 4 * modulo(an, 7) + 6 * modulo(19 * modulo(an, 19) + 24, 30) + 5, 7)
If jour / 31 > 1 Then
Mois = Mois + 1
jour = jour - 31
End If
Paques = Format(jour & "/" & Mois & "/" & an, "dd/mm/yyyy")
jour = jour + 8
Mois = Mois + 1
If jour / 31 > 1 Then
Mois = Mois + 1
jour = jour - 31
End If
Ascension = Format(jour & "/" & Mois & "/" & an, "dd/mm/yyyy")
jour = jour + 10
If jour / 31 > 1 Then
Mois = Mois + 1
jour = jour - 31
End If
Pentecote = Format(jour & "/" & Mois & "/" & an, "dd/mm/yyyy")
'comparaison avec les jours fériés français connus
If CStr(datetraitement) = Paques Or CStr(datetraitement) = Ascension Or CStr(datetraitement) = Pentecote _
Or CStr(Mid(datetraitement, 1, 5)) = "01/01" Or CStr(Mid(datetraitement, 1, 5)) = "01/05" Or CStr(Mid(datetraitement, 1, 5)) = "08/05" _
Or CStr(Mid(datetraitement, 1, 5)) = "14/07" Or CStr(Mid(datetraitement, 1, 5)) = "15/08" Or CStr(Mid(datetraitement, 1, 5)) = "01/11" _
Or CStr(Mid(datetraitement, 1, 5)) = "11/11" Or CStr(Mid(datetraitement, 1, 5)) = "25/12" Then
JourFerie = True
For i = 7 To i = 96
For j = 1 To j = 23
DocXL.Parent.Sheets.Cells(i, j).Font.Color = RGB(255, 0, 0)
For j = DocXL.Parent.Cells(i, 1) To DocXL.Parent.Cells(i, 96) = ""
Next
Else
JourFerie = False
End If
'je converti en date
ferie = CDate(JourFerie)
End Function |
Partager