trouver si l'année est bissextile en VBA Excel

11 réponses
Avatar
pilote301152
comment écrire la macro qui permet de savoir si l'année est bissextile ou pas ?
sur le calcul du nb de jours peut être ?

10 réponses

1 2
Avatar
Papyjac
Bonjour pilote,

Pour calculer le nombre de jours entre deux dates, Excel sait si l'année est
bissextile ou pas, par exemple : si tu fais 01/01/2008 - 01/01/2007 = 365 ;
alors que 01/01/2009 - 01/01/2008 = 366

Tu n'as pas besoin de te poser la question

--
Papyjac


"pilote301152" a écrit :

comment écrire la macro qui permet de savoir si l'année est bissextile ou pas ?
sur le calcul du nb de jours peut être ?


Avatar
RoswellBob
Toi aussi, t'as chopé le virus Malpolitus ??!!!

"pilote301152" a écrit dans le
message de news:
comment écrire la macro qui permet de savoir si l'année est bissextile ou
pas ?
sur le calcul du nb de jours peut être ?


Avatar
pilote301152
Merci beaucoup de ta réponse simple mais efficace

Bon dimanche depuis Nice !

"Papyjac" wrote:

Bonjour pilote,

Pour calculer le nombre de jours entre deux dates, Excel sait si l'année est
bissextile ou pas, par exemple : si tu fais 01/01/2008 - 01/01/2007 = 365 ;
alors que 01/01/2009 - 01/01/2008 = 366

Tu n'as pas besoin de te poser la question

--
Papyjac


"pilote301152" a écrit :

> comment écrire la macro qui permet de savoir si l'année est bissextile ou pas ?
> sur le calcul du nb de jours peut être ?


Avatar
pilote301152
Pour un premier accès à ce forum : quel accueil ! Habituellement il est
demandé d'être concis plutôt que de faire de longs discours (y compris pour
s'ecuser de demander pardon ... même le dimanche !!).
En tout cas je te remercie pour ta non réponse , heureusement il y a des
personnes moins stériles

Bonne journée quand même voire bonnes vacances si tel est le cas.

"RoswellBob" wrote:

Toi aussi, t'as chopé le virus Malpolitus ??!!!

"pilote301152" a écrit dans le
message de news:
> comment écrire la macro qui permet de savoir si l'année est bissextile ou
> pas ?
> sur le calcul du nb de jours peut être ?



Avatar
RoswellBob
"Pour un premier accès à ce forum : quel accueil !"
T'es un newbie, on te mets sur le droit chemin !

"Habituellement il est demandé d'être concis"
...et d'avoir un minimum de politesse, "bonjour" et "merci" n'a jamais tué
personne !!!

"plutôt que de faire de longs discours (y compris pour s'ecuser de demander
pardon ... même le dimanche !!)"
???

"En tout cas je te remercie pour ta non réponse"
De rien...

"heureusement il y a des personnes moins stériles"
Et t'as pas fini d'en connaître d'autres !

Bon Dimanche !




"pilote301152" a écrit dans le
message de news:
Pour un premier accès à ce forum : quel accueil ! Habituellement il est
demandé d'être concis plutôt que de faire de longs discours (y compris
pour
s'ecuser de demander pardon ... même le dimanche !!).
En tout cas je te remercie pour ta non réponse , heureusement il y a des
personnes moins stériles

Bonne journée quand même voire bonnes vacances si tel est le cas.

"RoswellBob" wrote:

Toi aussi, t'as chopé le virus Malpolitus ??!!!

"pilote301152" a écrit dans le
message de news:
> comment écrire la macro qui permet de savoir si l'année est bissextile
> ou
> pas ?
> sur le calcul du nb de jours peut être ?





Avatar
ChrisV
Bonjour pilote301152,

Sub zaza()
'si indication seule de l'année
maDate = "29/02/" & [A1]
'si indication de l'année sous la forme jj/mm/aaaa
'maDate = "29/02/" & Year([A1])
MsgBox IsDate(maDate)
End Sub

Par formule dans une feuille de calcul:

=MOIS(DATE(A1;2;29))=2

(ou si la date est indiquée sous la forme jj/mm/aaaa)
=MOIS(DATE(ANNEE(A1);2;29))=2


ChrisV



"pilote301152" a écrit dans le
message de news:
comment écrire la macro qui permet de savoir si l'année est bissextile ou
pas ?
sur le calcul du nb de jours peut être ?


Avatar
Daniel.C
Bonjour
Une autre manière; la formule suivante renvoie VRAI si l'année est
bissextile :
ÚTE(2008;2;29)<>DATE(2008;3;1)
Daniel
"pilote301152" a écrit dans le
message de news:
comment écrire la macro qui permet de savoir si l'année est bissextile ou
pas ?
sur le calcul du nb de jours peut être ?


Avatar
michdenis
Une variante avec une fonction personnalisée
auquelle tu passes l'année de ton choix !


'--------------------------
Sub test()
MsgBox IsBissextile(2008)
End Sub
'------------------------------

Function IsBissextile(année)
IsBissextile = IsDate("29/02/" & année)
End Function
'------------------------------




"pilote301152" a écrit dans le
message de news:
comment écrire la macro qui permet de savoir si l'année est bissextile ou
pas ?
sur le calcul du nb de jours peut être ?
Avatar
Frédéric Sigonneau
Une approche purement VBA :

'====================== ' Pour la détermination de la "bissextilité" d'une année, l'utilisation du sytème
' de dates de VBA offre, AMHA, plus de possibilités que celui d'Excel.
' Les dates en VBA commencent en effet le 1er janvier 100 (et se terminent, comme
' pour Excel, le 31 décembre 9999), et VBA ignore le bug du 29 février 1900...
' L'étendue des dates valides autorise à rechercher les années bissextiles avec
' les calendriers julien puis grégorien. En France, le changement s'est effectué
' en 1582.
' La fonction ci-dessous tient compte de ces données (le paramètre optionnel
' permet de prendre en compte une autre date de passage au calendrier grégorien
' que la date française) :

Function IsBissextile(An, Optional JulToGreg = 1582)
'plage de validité des dates en VBA
If An < 100 Or An > 9999 Then
IsBissextile = CVErr(xlErrNum)
Exit Function
End If
'calendrier julien
If An < JulToGreg Then
IsBissextile = (An Mod 4 = 0)
Else
'calendrier grégorien
IsBissextile = (An Mod 400 = 0) Or _
(An Mod 4 = 0 And (Not An Mod 100 = 0))
End If
End Function 'fs
'======================
FS
---
Frédéric Sigonneau
http://frederic.sigonneau.free.fr

pilote301152 a écrit :
comment écrire la macro qui permet de savoir si l'année est bissextile ou pas ?
sur le calcul du nb de jours peut être ?


Avatar
Modeste
Salut Fréd avec raideur ;o))) vous nous disiez :

Une approche purement VBA :
Function IsBissextile(An, Optional JulToGreg = 1582)
'plage de validité des dates en VBA
If An < 100 Or An > 9999 Then
IsBissextile = CVErr(xlErrNum)
Exit Function
End If
'calendrier julien
If An < JulToGreg Then
IsBissextile = (An Mod 4 = 0)
Else
'calendrier grégorien
IsBissextile = (An Mod 400 = 0) Or _
(An Mod 4 = 0 And (Not An Mod 100 = 0))
End If
End Function 'fs
'=======================



je ne sais si l'on peut parler d'année bissextile avant 1582 ???

une approche purement formuliste :o)))
si A1 contient une date
=OU(MOD(ANNEE(A1);400)=0;ET(MOD(ANNEE(A1);4)=0;MOD(ANNEE(A1);100)<> 0))
si A1 contient une année sur 4 chiffres
=OU(MOD(A1;400)=0;ET(MOD(A1;4)=0;MOD(A1;100)<>0))

il faudrait toutefois cher maître du temps que vous régliez votre horloge ;o)))
car
> "Frédéric Sigonneau"
> Date: Mon, 24 Aug 2009 16:58:26 +0200
> User-Agent: Thunderbird 2.0.0.16 (Windows/20080708)
> Subject: Re: Connaitre le pourcentage de jour qu'il me reste dans un an

on en a encore pour un an à voir ce fil en tete de MPFE !!!!
;o)))


--
--
@+
;o)))
1 2