Année bissextile
Comment savoir si une année est bissextile en VBA ?
Principe
Une année est bissextile (Leap Year en anglais) si elle respecte l’une de ces règles :
- Soit elle est divisible par 4 mais non divisible par 100
- Soit elle est divisible par 400.
Pour plus de détails, consultez l’article Année bissextile sur Wikipedia.
Fonction VB
La fonction IsLeapYear()
ci-dessous, soumise par DenisS – Maître Jedi sur le forum self-access.com 🙂 – traduit la règle en VB :
1 2 3 4 |
Public Function IsLeapYear(ByVal lngYear As Long) As Boolean IsLeapYear = ((lngYear Mod 4 = 0) And (lngYear Mod 100 <> 0)) _ Or (lngYear Mod 400 = 0) End Function |
Tester la fonction
Comme d’habitude, vous pouvez tester la fonction de cette manière :
- Faites apparaître la fenêtre Exécution (
CTRL
+G
). - Dans cette fenêtre, tapez par exemple :
? IsLeapYear(2000)
puis validez par[Entrée]
. - Si vous avez une date – au lieu d’un nombre entier – en entrée, vous devez d’abord en extraire l’année. Vous écrirez plutôt :
? IsLeapYear(Year([Votre champ Date]))
puis[Entrée]
.
Par exemple, pour l’année en cours :
? IsLeapYear(Year(Date))
La fonction renvoie True
si l’année est bissextile, et False
sinon. Vous pouvez l’utiliser n’importe où dans votre base de données (dans les requêtes, les formulaires, les états, les macros ou bien sûr le code VBA).