Nombre d'année bissextile

dhiouf

XLDnaute Occasionnel
Bonjour a tous!

Y a t-il un code VBA qui permet de savoir combien d’année bissextile entre deux date ?

Exemple
Entre le 27/11/1993 et le 26/09/2011 il y a 4 année bissextile (1996,2000,2004,2008)

Merci d’avance.
 

tototiti2008

XLDnaute Barbatruc
Re : Nombre d'année bissextile

Bonjour dhiouf,

Peut-être, si date de début en A1 et date de fin en B1

Code:
=SOMMEPROD((MOIS(LIGNE(INDIRECT(A1&":"&B1)))=2)*(JOUR(LIGNE(INDIRECT(A1&":"&B1)))=29))

Edit : Oups, tu voulais un code VBA...

Code:
Function NbAnBissex(DateDeb As Date, DateFin As Date) As Long
Dim AnDeb As Long, AnFin As Long, i As Long
    NbAnBissex = 0
    AnDeb = Year(DateDeb)
    AnFin = Year(DateFin)
    If Month(DateDeb) > 2 Then AnDeb = AnDeb + 1
    If DateFin <= DateSerial(AnFin, 2, 28) Then AnFin = AnFin - 1
    For i = AnDeb To AnFin
        If Month(DateSerial(i, 2, 29)) = 2 Then NbAnBissex = NbAnBissex + 1
    Next i
End Function
 
Dernière édition:

tototiti2008

XLDnaute Barbatruc
Re : Nombre d'année bissextile

Bonjour PierreJean :),
Re,

Pour afficher le résultat d'une fonction dans une Msgbox, que ce soit celles de PierreJean ou la mienne, en admettant que tes dates sont en cellules A1 et B1 de la feuille active

Code:
Msgbox nb_bissex(Range("A1").value, Range("B1").value)
ou

Code:
Msgbox an_bissex(Range("A1").value, Range("B1").value)
ou

Code:
Msgbox NbAnBissex(Range("A1").value, Range("B1").value)
 

Membres actuellement en ligne

Statistiques des forums

Discussions
312 348
Messages
2 087 508
Membres
103 568
dernier inscrit
NoS