N° de semaine inversé?

magnusyou

XLDnaute Junior
Bonjour à tous,

J'ai un petit souci, j'utilise bien cette formule: ENT(MOD(ENT((XXX-2)/7)+0,6;52+5/28))+1) pour calculer le numéro de semaine à partir d'une date de type jj/mm/aaaa

Mais du coup, je souhaiterais l'inverse.

Si j'ai S41 dans ma cellule, je souhaiterai obtenir cela --> 07/10/2013
pour S36 par exemple --> 02/08/2013

etc...

Avez-vous une idée?

Merci à vous :)
 

CHALET53

XLDnaute Barbatruc
Re : N° de semaine inversé?

bonjour,

Un exemple pris jadis sur ce forum

regarde la formule en C18 ou D3
a+
 

Pièces jointes

  • Jour dans un n° de semaine.xls
    33 KB · Affichages: 60
  • Jour dans un n° de semaine.xls
    33 KB · Affichages: 64
  • Jour dans un n° de semaine.xls
    33 KB · Affichages: 65

MJ13

XLDnaute Barbatruc
Re : N° de semaine inversé?

Bonjour magnusyou, Chalet

Tu peux tester certte formule en ayant la valeur de num semaine en A1:

Code:
="01/01/2013"+(A1*7)-8

Par contre pour S36, il me semble que c'est plutôt le 02/09/13.
 

Webperegrino

XLDnaute Impliqué
Supporter XLD
Re : N° de semaine inversé?

Bonsoir Le Forum,
Bonsoir Magnusyou, Chalet53, MJ13

J'ai essayé la formule et ai voulu aller plus loin... que le 31/12/2013
Il m'a fallu transformer la fin de la formule en B1 pour travailler sur 2014.
- avec 1 dans A1 pour obtenir le bon lundi 30 décembre 2013 en B2
- avec 2 dans a1 pour obtenir le bon lundi 6 janvier 2014
pour que cela soit correct avec en B1 ceci :
B1 = "01/01/2014"+(A1*7)-9
Pouvez-vous m'expliquer cette obligation de modifier la fin de la formule pourtant très intéressante mais difficile à généraliser quelle que soit l'année entrée ?
Webperegrino
 
Dernière édition:

Modeste geedee

XLDnaute Barbatruc
Re : N° de semaine inversé?

Bonsour®
Bonjour à tous,

J'ai un petit souci, j'utilise bien cette formule: ENT(MOD(ENT((XXX-2)/7)+0,6;52+5/28))+1) pour calculer le numéro de semaine à partir d'une date de type jj/mm/aaaa

Mais du coup, je souhaiterais l'inverse.

Si j'ai S41 dans ma cellule, je souhaiterai obtenir cela --> 07/10/2013
pour S36 par exemple --> 02/08/2013

pour obtenir l'inverse il faut fournir 2 arguments : le n° de semaine(SemNo) et l'année concernée(An).

sachant que le lundi de la semaine 01 peut très bien être l'année précédente du jeudi de cette semaine 01
Corolaire : le 4eme jour de l'année appartient toujours à la semaine 01

la formule à utiliser :
=(7*SemNo)+DATE(An;1;4)-JOURSEM(DATE(An;1;4);3)-7

attention cette formule ne fonctionne pour un N° de semaine ISO
ne pas utiliser la fonction NO.SEMAINE...
 
Dernière édition:

MJ13

XLDnaute Barbatruc
Re : N° de semaine inversé?

Re

Personnnlement, je l'utilise sur des plannings que je modifie pour l'année suivante.

Sinon, vous pouvez aller voir un code de notre ami MichelXLD :).

FAQ MS-Access

Code VBA:
Public Function PremierJourSemaine(ByVal numSemaine As Byte, ByVal annee As Integer) As Date
'MichelXLD
'http://access.developpez.com/faq/?page=dates#DAtPremJourSem
Dim d As Date
Dim numS As Integer

' Premier jour de l'année
d = DateSerial(annee, 1, 1)

' Numéro de la semaine du 1er janvier
numS = DatePart("ww", d, vbMonday, vbFirstFourDays)

' Si le 1er janvier fait partie de la dernière semaine de l'année précédente
' alors passe à la semaine suivante (la première de la nouvelle année)
If numS <> 1 Then d = DateAdd("d", 7, d)

' Calcule le premier jour de la première semaine de l'année
d = DateAdd("d", 1 - Weekday(d, vbMonday), d)

' Ajoute (numSemaine-1) semaines
PremierJourSemaine = DateAdd("ww", numSemaine - 1, d)
End Function
 

ROGER2327

XLDnaute Barbatruc
Re : N° de semaine inversé?

Bonjour à tous.


Une autre fonction personnalisée :​
VB:
Function GREGiso(AnnéeISO%, Semaine%, Optional Jour%)
Application.Volatile ' Facultatif
Dim d As Date
    d = DateSerial(AnnéeISO, 1, 7 * (((DateSerial(AnnéeISO, 1, 6) Mod 7) < 4) + Semaine)) - (DateSerial(AnnéeISO, 1, 6) Mod 7)
    If AnnéeISO = Year(5 + 7 * (d - 1) \ 7) Then GREGiso = d + 1462 * ThisWorkbook.Date1904 + Jour - (Jour = 0) Else GREGiso = ""
End Function
Mode d'emploi :

GREGiso(2009;52) renvoie lundi 21/12/ 2009. (Si le jour est omis, la fonction renvoie le premier jour de la semaine.)
GREGiso(2009;52;1) renvoie lundi 21/12/ 2009.
GREGiso(2009;52;7) renvoie dimanche 27/12/ 2009.
GREGiso(2010;53;6) ne renvoie rien car il n'y a pas de semaine 2010-W53.

La fonction opère tant en mode "calendrier 1900" qu'en mode "calendrier 1904".​


Bonne soirée.


ℝOGER2327
#6951


Mercredi 4 As 141 (Saint Cravan, boxeur - fête Suprême Quarte)
16 Brumaire An CCXXII, 6,3570h - chervis
2013-W45-3T15:15:25Z
 

PSCLDEV

XLDnaute Nouveau
Re : N° de semaine inversé?

Bonsoir,

J'utilise dans une cellule la formule suivante dans le cas ou cela pourrait être urile :

Date 01/10/2013 (G2)
=SI(G2<>"";("Semaine"&" "&SI(ESTERREUR(ENT((G2-SOMME(MOD(DATE(ANNEE(G2-MOD(G2-2;7)+3);1;2);{1E+99;7})*{1;-1})+5)/7));"";ENT((G2-SOMME(MOD(DATE(ANNEE(G2-MOD(G2-2;7)+3);1;2);{1E+99;7})*{1;-1})+5)/7)));"")
Resultat : Semaine 40.
Il y a certainement mieux !!!,
cdt

Pascal
 

Regueiro

XLDnaute Impliqué
Re : N° de semaine inversé?

Bonsoir à Tous
Avec Excel 2013

Code:
="SEM N° " &ENT(MOD(ENT((D7-2)/7)+0.6;52+5/28))+1
ou 
=SI(D7<>"";"Semaine N° " &NO.SEMAINE(D7;2);"")

Pour le N° du Trimestre


="TRIM. N° "&ENT((MOIS($D7)+2)/3)
Toujours en ayant en D7 le format date
A+
 

Discussions similaires

Statistiques des forums

Discussions
313 769
Messages
2 102 234
Membres
108 181
dernier inscrit
Chr1sD