Posez votre question Signaler

Nombre de semaines dans une année [Résolu/Fermé]

bosche - Dernière réponse le 4 févr. 2011 à 03:50
Bonjour,
Comment faire pour calculer sur excel le nombre de semaines qu'il y a dans une année sachant que 2008 est une année bisextile?
merci
Lire la suite 
Réponse
+339
moins plus
Il y a 52 semaines en l'année 2008.

Raymond PENTIER 33013Messages postés lundi 13 août 2007Date d'inscription ContributeurStatut 24 juillet 2015 Dernière intervention - 9 oct. 2010 à 14:59
52 en 2000
52 en 2001
52 en 2002
52 en 2003
52 en 2004
52 en 2005
52 en 2006
52 en 2007
52 en 2008
52 en 2009

52 en 2010
52 en 2011
52 en 2012
52 en 2013
...
Te voila rassurée ?
Ardi- 3 févr. 2011 à 22:38
Ou encore plus simple tu fais 364.25 / 7 ... lol
Raymond PENTIER 33013Messages postés lundi 13 août 2007Date d'inscription ContributeurStatut 24 juillet 2015 Dernière intervention - 4 févr. 2011 à 03:50
Heureusement que tu es passé par là : Personne n'y aurait pensé, figure-toi !

Sauf peut-être Xavstarblues : http://www.commentcamarche.net/...
Réponse
+41
moins plus
Bonjour,

le plus simple reste de demander à notre ami Excel ce qu'il en pense. ;-)

Saisir la date en A1
en B1 insérer la formule =NO.SEMAINE(A1)

Suspensssss...

m@rina 11639Messages postés mardi 12 juin 2007Date d'inscription ContributeurStatut 24 juillet 2015 Dernière intervention - 28 mai 2008 à 14:39
Bonjour chtilou,

Sauf que Excel ne connaît que la norme américaine !... :(
Pour la norme américaine, la semaine 1 est la première semaine qu'elle soit entière ou non.
Alors que pour la norme européenne, la semaine 1 est la première semaine qui compte au minimum 4 jours... Il fauit donc qu'elle commence un jeudi ou plus tard.
Donc, pour cette année et encore pour l'année prochaine, c'est correct... Mais... pour 2010, la première semaine commencera un vendredi, et alors Excel aura tout faux dans nos contrées !!! Depuis le temps qu'on le dit à Microsoft qui s'en fiche totalement de nos histoires de petite semaine !!! ;))

m@rina
chtilou 1677Messages postés mardi 22 janvier 2008Date d'inscription 30 avril 2012 Dernière intervention - 28 mai 2008 à 15:45
Salut Marina,

j'essaierais de retenir cette info. On ne sait jamais... ;-)
AgriBases m@rina - 18 juin 2008 à 18:00
Une solution est peut-être d'utiliser des logiciels écrits par des programmeurs qui ne s'en foutent pas.
Dans OpenOffice, No.semaine(Samedi 2 janvier 2010)=53!
Réponse
+24
moins plus
Bonjour

Une semaine commence toujours un lundi et donc même si le nombre de jours est toujours à peut prêt le même, le nombre de semaine varie entre 52 et 53.
En fait selon les normes européennes, la semaine est compté dans l'année en cours si elle comporte au moins 4 jour dans l'année en question.
De ce fait, si le 28 Décembre est un lundi, mardi ou mercredi alors l'année en cours comporte 53 semaines... (vu que la dernière semaine comptera 4,5 ou 6 jours)

En terme de code algorithmique:
Calculer le lundi de la semaine du 28 décembre
Si ce lundi == 28 decembre ou 27 decembre ou 26 decembre ==> retourner 53 semaines
Sinon retourner 52 semaines

En espérant avoir aider un peu...

Nep

-----------------------------------------------------------------------------------------------
Vous avez des connaissances? Venez les partager: http://cultureg.org

Réponse
+13
moins plus
Suite à tout ce que j'ai pu lire, je me suis appuyé d'une part sur les défintions du larrousse et d'autre part sur les formule établies d'Exel. Années bisextiles les 4 ans dont le millésime est divisible par 4, divible par 100 si elle sont divisble par 400 2000, 1700,1800,1900 sont bisextiles. =SI(DROITE(TEXTE(janv!$D$11;"aaaa");2)="00";SI(DROITE(TEXTE(janv!$D$11;"aaaa")/100/400;2)="05";29;28);SI(DROITE(TEXTE(janv!$D$11;"aaaa")/4*100;2)="00";29;28)). Vous entrez la date du 1er Janvier dans une cellule choisie ex: 1/01/2010, le résultat de la formule vous donnera 28 ou 29 jrs pour le mois de février. Pour le nombre de semaine SI(DROITE(TEXTE(janv!$D$11;"aaaa")/6*100;2)="00";53;52) le résultat de la formule vous donnera 52 ou 53. Ces valeurs sont stokées dans des cellules situées dans une feuille que j'appelle paramètre et qui me servent pour les calculs du calendrier.

Pour connaître les jours de la semaine 52 ou 53 ou 1 je me suis fait les formules suivantes en ulisant la formule Exel JOURSEM(janv!D11;2). Nota D11 est la date du 1er Janvier 1/01/10
Private Sub Worksheet_Change(ByVal Target As Range)

If (Target.Address = "$D$11") Then
Worksheets(3).Unprotect "TSA3X8"
If Sheets(1).Range("A14").Value = 1 Then
Sheets(3).Range("F14").Value = Sheets(3).Range("D11").Value
Sheets(3).Range("H14").Value = Sheets(3).Range("D11").Value + 1
Sheets(3).Range("J14").Value = Sheets(3).Range("D11").Value + 2
Sheets(3).Range("L14").Value = Sheets(3).Range("D11").Value + 3
Sheets(3).Range("N14").Value = Sheets(3).Range("D11").Value + 4
Sheets(3).Range("P14").Value = Sheets(3).Range("D11").Value + 5
Sheets(3).Range("R14").Value = Sheets(3).Range("D11").Value + 6
Sheets(3).Range("F12").Value = Sheets(3).Range("D11").Value - Sheets(3).Range("F14").Value
ElseIf Sheets(1).Range("A14").Value = 2 Then
Sheets(3).Range("F14").Value = Sheets(3).Range("D11").Value - 1
Sheets(3).Range("H14").Value = Sheets(3).Range("D11").Value
Sheets(3).Range("J14").Value = Sheets(3).Range("D11").Value + 1
Sheets(3).Range("L14").Value = Sheets(3).Range("D11").Value + 2
Sheets(3).Range("N14").Value = Sheets(3).Range("D11").Value + 3
Sheets(3).Range("P14").Value = Sheets(3).Range("D11").Value + 4
Sheets(3).Range("R14").Value = Sheets(3).Range("D11").Value + 5
Sheets(3).Range("F12").Value = Sheets(3).Range("D11").Value - Sheets(3).Range("F14").Value
ElseIf Sheets(1).Range("A14").Value = 3 Then
Sheets(3).Range("F14").Value = Sheets(3).Range("D11").Value - 2
Sheets(3).Range("H14").Value = Sheets(3).Range("D11").Value - 1
Sheets(3).Range("J14").Value = Sheets(3).Range("D11").Value
Sheets(3).Range("L14").Value = Sheets(3).Range("D11").Value + 1
Sheets(3).Range("N14").Value = Sheets(3).Range("D11").Value + 2
Sheets(3).Range("P14").Value = Sheets(3).Range("D11").Value + 3
Sheets(3).Range("R14").Value = Sheets(3).Range("D11").Value + 4
Sheets(3).Range("F12").Value = Sheets(3).Range("D11").Value - Sheets(3).Range("F14").Value
ElseIf Sheets(1).Range("A14").Value = 4 Then
Sheets(3).Range("F14").Value = Sheets(3).Range("D11").Value - 3
Sheets(3).Range("H14").Value = Sheets(3).Range("D11").Value - 2
Sheets(3).Range("J14").Value = Sheets(3).Range("D11").Value - 1
Sheets(3).Range("L14").Value = Sheets(3).Range("D11").Value
Sheets(3).Range("N14").Value = Sheets(3).Range("D11").Value + 1
Sheets(3).Range("P14").Value = Sheets(3).Range("D11").Value + 2
Sheets(3).Range("R14").Value = Sheets(3).Range("D11").Value + 3
Sheets(3).Range("F12").Value = Sheets(3).Range("D11").Value - Sheets(3).Range("F14").Value
ElseIf Sheets(1).Range("A14").Value = 5 Then
Sheets(3).Range("F14").Value = Sheets(3).Range("D11").Value - 4
Sheets(3).Range("H14").Value = Sheets(3).Range("D11").Value - 3
Sheets(3).Range("J14").Value = Sheets(3).Range("D11").Value - 2
Sheets(3).Range("L14").Value = Sheets(3).Range("D11").Value - 1
Sheets(3).Range("N14").Value = Sheets(3).Range("D11").Value
Sheets(3).Range("P14").Value = Sheets(3).Range("D11").Value + 1
Sheets(3).Range("R14").Value = Sheets(3).Range("D11").Value + 2
Sheets(3).Range("F12").Value = Sheets(3).Range("D11").Value - Sheets(3).Range("F14").Value
ElseIf Sheets(1).Range("A14").Value = 6 Then
Sheets(3).Range("F14").Value = Sheets(3).Range("D11").Value - 5
Sheets(3).Range("H14").Value = Sheets(3).Range("D11").Value - 4
Sheets(3).Range("J14").Value = Sheets(3).Range("D11").Value - 3
Sheets(3).Range("L14").Value = Sheets(3).Range("D11").Value - 2
Sheets(3).Range("N14").Value = Sheets(3).Range("D11").Value - 1
Sheets(3).Range("P14").Value = Sheets(3).Range("D11").Value
Sheets(3).Range("R14").Value = Sheets(3).Range("D11").Value + 1
Sheets(3).Range("F12").Value = Sheets(3).Range("D11").Value - Sheets(3).Range("F14").Value
ElseIf Sheets(1).Range("A14").Value = 7 Then
Sheets(3).Range("F14").Value = Sheets(3).Range("D11").Value - 6
Sheets(3).Range("H14").Value = Sheets(3).Range("D11").Value - 5
Sheets(3).Range("J14").Value = Sheets(3).Range("D11").Value - 4
Sheets(3).Range("L14").Value = Sheets(3).Range("D11").Value - 3
Sheets(3).Range("N14").Value = Sheets(3).Range("D11").Value - 2
Sheets(3).Range("P14").Value = Sheets(3).Range("D11").Value - 1
Sheets(3).Range("R14").Value = Sheets(3).Range("D11").Value
Sheets(3).Range("F12").Value = Sheets(3).Range("D11").Value - Sheets(3).Range("F14").Value
End If
If Sheets(1).Range("A14").Value = 7 Then 'Di
Sheets(3).Range("N12").Value = Sheets(1).Range("I8").Value
ElseIf Sheets(1).Range("A14").Value = 6 And Sheets(1).Range("I8").Value = 52 Then 'Sa
Sheets(3).Range("N12").Value = 1
ElseIf Sheets(1).Range("A14").Value = 6 And Sheets(1).Range("I8").Value = 53 Then
Sheets(3).Range("N12").Value = Sheets(1).Range("I8").Value
ElseIf Sheets(1).Range("A14").Value <> 6 Or Sheets(1).Range("A14").Value <> 7 Then
Sheets(3).Range("N12").Value = 1
End If
Worksheets(3).Protect "TSA3X8"
End If
End Sub
Cette ensemble peut paraître un peu lourd pour certains, mais il est rapide et il fonctionne à merveille il me permet de faire des tours de service 3x8 sur un nombre d'agent important et sur l'année, et je précise que je ne suis pas un pro du VBA.
Cordialement
Cordialement

Réponse
+10
moins plus
=SI(DROITE($G$3/6*100;2)="00";53;1)
VOICI UNE FORMULE QUI TE SIMPLIFERA LA VIE.
$G$3 EST LE NUMERO DE L'ANNEE SITUEE DANS CETTE CELLULE
Cordialement

Cyrano75- 18 févr. 2010 à 13:05
Bonjour à tous,

Je pense que la formule ci-dessus :
=SI(DROITE($G$3/6*100;2)="00";53;1)
ne sert qu'à trouver le numéro de semaine du 1er janvier.
Ce n'est pas souple et transposable sur tous les tableaux, car il ne faut l'appliquer qu'à la semaine du 1er janvier.

Pour tous les jours de l'année, j'ai trouvé cette formule sur le Net pour Excel.
Elle n'est pas de moi mais fonctionne sans problèmes dans beaucoup de mes tableaux.
Je l'ai donc testée et validée.

- en A1 : indiquer la date à tester
- en B1 : coller la formule suivante :
=ENT(MOD(ENT((A1-2)/7)+0,6;52+5/28))+1

=> Dans B1 s'affichera le numéro de la semaine concernée.
Et donc bien la valeur 53 pour le 01/01/2010 ...
Et semaine 1 pour le 04/01/2010, ce qui est conforme à notre calendrier français.

Elle remplace donc avantageusement la formule générique de Excel
=NO.SEMAINE(A1;2)
Cette formule valable pour les calendriers américains, indique
- semaine 53 du lundi 28 au jeudi 31 décembre 2009
- semaine 01 du vendredi 1er au dimanche 3 janvier 2010
- semaine 02 à compter du lundi 4 janvier 2010.

Il faudra qu'on m'explique comment on change de numéro de semaine entre le jeudi et le vendredi...

Fred
Réponse
+9
moins plus
bonjour
nbr de jour en 2008=366
nbr de jour dans une semaine =7
366/7=
52,285714285714285714285714285714
......
Je te laisse faire l'arrondi

Réponse
+1
moins plus
Une année bissextile est une année de 366 jours au lieu de 365, c'est-à-dire une année comprenant un 29 février. Le terme vient du latin bis-sextilis, qui signifie « deux fois (bis) sixième (sextus) ».
Depuis l'instauration du calendrier grégorien, sont bissextiles les années divisibles par 4 mais non divisibles par 100, ou divisibles par 400. 
Ainsi, l'an 1900 n'était pas bissextile, car divisible par 100 et non divisible par 400. L'an 2000 était bissextile car divisible par 400.
Le calendrier julien avait une année moyenne de 365,25 jours, au lieu des 365,2422 jours nécessaires au cycle terrestre. Ce qui a engendré l'accumulation d'une dizaine de jours de retard en quinze siècles. Ce retard fut corrigé en supprimant des jours.
http://www.techno-science.net/?onglet=glossaire&definition=3052

Mon costume, lui, est bitextile, car taillé dans un tissu mixte laine+lin.

Ce document intitulé «  Nombre de semaines dans une année  » issu de CommentCaMarche (www.commentcamarche.net) est mis à disposition sous les termes de la licence Creative Commons. Vous pouvez copier, modifier des copies de cette page, dans les conditions fixées par la licence, tant que cette note apparaît clairement.

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes.

Le fait d'être membre vous permet d'avoir des options supplémentaires.