VBA: calcul des fêtes et jours fériés au Canada 1



Dans l'article qui suit, je vous propose plusieurs fonctions VBA qui vous permettront de calculer les dates des jours fériés mobiles au Canada:

  • la Fête de la Reine (le lundi précédant le 25 mai)
  • la Fête du Travail (premier lundi de septembre)
  • l'Action de Grâce (2ème lundi d'octobre)

Si vous pensez à d'autres jours fériés, n'hésitez pas de m'n faire part dans les commentaires et je vais l'ajouter à la liste.

Pour chacun des ces jours fériés canadiens, vous trouverez ci-dessous deux fonctions VBA distinctes:

  • une qui teste si une date de votre choix correspond ou non à la fête en question. Ces fonctions ont comme argument la date qui doit être testée et renvoient comme résultat un Booléen (Vrai ou Faux / True ou False).
  • une deuxième qui retourne la date de la fête pour une année donnée. Ces fonctions ont comme argument une année (valeur de type Integer) et retournent comme résultat une date (valeur de type Date).

VBA: la Fête de la reine

Code VBA: jours fériés au Canada - la Fête de la Reine

Fonction VBA pour tester si la date correspond à la Fête de la Reine

Public Function EstFeteDeLaReine(MaDate As Date)
'par Excel-Malin.com ( https://excel-malin.com/ )

EstFeteDeLaReine = False
For x = 24 To 17 Step -1
    If MaDate = DateSerial(Year(MaDate), 5, x) And Weekday(MaDate, vbMonday) = 1 Then
        EstFeteDeLaReine = True
        Exit Function
    End If
Next x
End Function

 

Fonction VBA pour calculer la date de la Fête de la Reine pour une année donnée

Public Function DateFeteDeLaReine(Annee As Integer)
'par Excel-Malin.com ( https://excel-malin.com/ )

DateFeteDeLaReine = ""
For x = 24 To 17 Step -1
    If Weekday(DateSerial(Annee, 5, x), vbMonday) = 1 Then
        DateFeteDeLaReine = DateSerial(Annee, 5, x)
        Exit Function
    End If
Next x
End Function

VBA: la Fête du Travail

Code VBA: jours fériés au Canada - la Fête du Travail

Fonction VBA pour tester si la date correspond à la Fête du Travail

Public Function EstFeteDuTravail(MaDate As Date)
'par Excel-Malin.com ( https://excel-malin.com/ )

EstFeteDuTravail = False
For x = 1 To 7
    If MaDate = DateSerial(Year(MaDate), 9, x) And Weekday(MaDate, vbMonday) = 1 Then
        EstFeteDuTravail = True
        Exit Function
    End If
Next x
End Function

 

Fonction VBA pour calculer la date de la Fête du Travail pour une année donnée

Public Function DateFeteDuTravail(Annee As Integer)
'par Excel-Malin.com ( https://excel-malin.com/ )

DateFeteDuTravail = ""
For x = 1 To 7
    If Weekday(DateSerial(Annee, 9, x), vbMonday) = 1 Then
        DateFeteDuTravail = DateSerial(Annee, 9, x)
        Exit Function
    End If
Next x
End Function

VBA: l'Action de Grâce (Thanksgiving)

Code VBA: jours fériés au Canada - l'Action de Grâce

Fonction VBA pour tester si la date correspond à l’Action de Grâce (Thanksgiving)

Public Function EstActionDeGrace(MaDate As Date)
'par Excel-Malin.com ( https://excel-malin.com/ )

EstActionDeGrace = False
For x = 8 To 15
    If MaDate = DateSerial(Year(MaDate), 10, x) And Weekday(MaDate, vbMonday) = 1 Then
        EstActionDeGrace = True
        Exit Function
    End If
Next x
End Function

 

Fonction VBA pour calculer la date de l’Action de Grâce pour une année donnée

Public Function DateActionDeGrace(Annee As Integer)
'par Excel-Malin.com ( https://excel-malin.com/ )

DateActionDeGrace = ""
For x = 8 To 15
    If Weekday(DateSerial(Annee, 10, x), vbMonday) = 1 Then
        DateActionDeGrace = DateSerial(Annee, 10, x)
        Exit Function
    End If
Next x
End Function

 

Pour le calcul des dates de Pâques, veuillez consulter ce tutoriel dédié aux dates de Pâques.

Liste des Jours fériés au Canada sur Wikipédia.

Pour aller plus loin dans VBA

Voici quelques sujets qui pourraient vous intéresser:

5 0




Laissez un commentaire

Votre adresse de messagerie ne sera pas publiée.

Commentaire sur “VBA: calcul des fêtes et jours fériés au Canada