Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

Années bisextilles en VBA

laurent45

XLDnaute Occasionnel
Bonjour le Forum,

Faisant des recherche pour identifier les années bisextilles en VBA, j'ai trouver ce post : Je l'ai adapté comme ça
Code:
If LaDate Mod 4 = 0 And LaDate Mod 100 = 0 Or LaDate Mod 400 = 0 Then
    FinAnnee = 366
Else: FinAnnee = 365
End If
LaDate étant la date à évaluer et FinAnnee reçoit le nombre de jour de l'année.

Mais, FinAnnee est toujours à 365. J'ai testé avec 2002 et 2006. Rien à faire.

Qu'est-ce que je plante dans mon code ?

Merci
 

Bebere

XLDnaute Barbatruc
bonsoir Laurent,André,Chris

l'importance des parenthèses

Function Bissextile(y As Integer) As Boolean
Bissextile= ((y Mod 400 = 0) Or (y Mod 4 = 0 And y Mod 100 <> 0))
End Function

ou dans l'idée d'André
Public Function EstBissextile(y As Integer)
EstBissextile= Month(DateSerial(y, 2, 29)) = 2
End Function

à bientôt
 

laurent45

XLDnaute Occasionnel
Bonsoir, Chris, André, Bébère,
Bonsoir le Forum,

Merci pour vos réponses.

Je suis arrivé à ça
Code:
If Day(DateSerial(Year(LaDate), 3, 1 - 1)) = 29 Then
    FinAnnee = 366 + 5
Else: FinAnnee = 365 + 5
End If
Basé sur l'idée d'André.

Mais les fonction sont bien aussi. Je n'ai besoin de ce calcul qu'une fois, donc je vais rester sur mon exemple.

Mais tes function, Bébère, pourront servir à d'autres.

Merci

@+
 

Discussions similaires

Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…