Bonjour,
je suis entrain de développer une petite application sur vba excel, qui demande beaucoup de manipulations avec les dates, dans le cas présent je ne dois effectuer un calcul sous de multiple conditions et contraintes de dates ....
1ère contrainte si l'année est une année normale à 52 dimanche
2ème contrainte si l'année est une année normale à 53 dimanche
3ème contrainte si l'année est une année bissextile à 52 dimanche
4ème contrainte si l'année est une année bissextile à 53 dimanche
oui c'est compliqué tous sa ^^ donc pour le moment je ne vous demande pas de me trouver une solution tout cuit à mon problème, car j'ai quand même essayer d'avance avant ^^
donc pour commencer voila ma macro pour connaitre si l'année est bissextile ou non :
Code:
If annee.Text / 4 = Int(annee.Text / 4) Then
MsgBox "bissextile"
Else
MsgBox " non bissextile"
End If
rien de plus simple...
par contre pour ce qui est du calcul du nombre de dimanche dans une année
j'ai trouver une fonction excel qui y arrive :
Code:
=SI(JOURSEM(A9)=1;1;0)
cette formules va chercher la date en A1 et retourne 1 si c'est un dimanche, 0 si non...
j'aimerais bien trouver quelque chose de similaire en vba ^^
Je reste dispo pour tout autre question bien sur
Merci d'avance
Attention ! Si ton application est destinée à être utilisée sur une très large plage d'années, cette façon de tester n'est pas correcte. En effet, pour réajuster notre calendrier sur le soleil, on rajoute effectivement un jour tous les 4 ans. Mais comme ça fait trop, on en supprime 3 tous les 4 siècles il me semble.
En fait la règle c'est :
Une année est bissextile (elle possède un 29 février) si son millésime est divisible par 4 (ex: 1904 1980 1996), mais pas par 100 (ex: 1900), à moins qu'il soit divisible par 400 (ex: 2000), sauf s'il est divisible par 4000 (ex: 4000 8000 12000 ).
C'est pour ça que 2000 était bisextile mais que 2100, 2200 et 2300, bien que divisibles par 4, ne le seront pas.
Mais bon, tout cela n'a d'importance que si tu utilise une vaste plage de dates (je suis pas censé savoir que tu es pas archéologue )
Sinon pour répondre quand même à ta question, est ce que tu pourrais pas base ton calcul sur le 1er jour de l'année en sachant que :
si année bisextile alors : 52.28 semaines dans l'année
si le premier jour de l'année est un lundi, le dernier sera un ... donc X dimanches dans l'année.......
Je sais pas si c'est faisable comme ça mais ça me paraît être un bon moyen d'aborder le problème.
Perso, je déterminerais le premier dimanche de l'année et j'y ajouterais 364 jours ( 52X7)
- si la date trouvée appartient à la même année: conclusion il y a 53 dimanches dans l'année
- si la date trouvée n'appartient pas à la même année: conclusion il y a 52 dimanches dans l'année
Bon, tout ceci confirme la règle :
si le 1er janvier est un dimanche, 53 dimanches
si le 1er janvier est un samedi et l'année est bissextile, 53 dimanches
dans tous les autres cas, 52 dimanches