Transformer date en semaine/année

flam72

XLDnaute Occasionnel
Bonjour,

Sur le forum, j'ai trouvé comment transformer une date en semaine mais aucun avec l'année en complément

je souhaite transformer le 25/11/2016 en S48/2016

Quel est le complément de formule à =NO.SEMAINE(C2;2) ?

Merci,

OZ
 

chris

XLDnaute Barbatruc
Bonjour

Attention NO.SEMAINE(C2;2) ne donne pas le numéro selon la norme française même si en 2017 cela ne se voit pas (pour 2016 en revanche il y a un décalage d'une semaine).

Il faut à partir de la version 2010 utiliser NO.SEMAINE(C2;21) ou à partir de la 2013 utiliser NO.SEMAINE.ISO
 

patricktoulon

XLDnaute Barbatruc
bonjour depuis 2013 il y a la fonction no.semaine.iso
et si tu a une version excel <2013
tu a ma fonction perso de remplacement de mon cru
quand on se donne la peine de chercher on trouve ;)
 

chris

XLDnaute Barbatruc
RE
depuis 2013 il y a la fonction no.semaine.iso
ici ce n'est la semaine qui pose problème mais l'année qui est concaténée avec
Si semaine = 53 et si mois= janvier, alors diminuer année de 1
Oui c'est le même principe que ce que j'ai donnée

Cette concaténation est ton choix, pas une règle générale d'où l'absence de fonction prévue
 

patricktoulon

XLDnaute Barbatruc
il faudra que m'explique @Patrick A selon lui
quelle est le Numéro de semaine du vendredi 1 janvier 2021
et quel est celui du du 28 décembre 2020
qui sont tout les deux dans la même semaine
🤣 🤣 🤣 🤣 🤣
si il y a des règles c'est pas pour rien
en france une semaine commence un lundi et termine un dimanche et décalée d'un jour en moins pour les autres de l'autre coté de l'atlantique
1 semaine est une semaine point barre ;)
il ne faut pas confondre les date calendaires et l'indexation des semaines
d'autant plus que pour excel et pour tout le monde sauf patrick A la semaine 1 de 2021 commence le lundi 04/01/2021
et tout les formule et calcul vba renverront cette date
si tu ne veux pas cette numérotation sert toi de no.semaine qui te donnera 1 pour le 1 janvier 2021
la semaine 1 commencera donc le vendredi 1 janvier 2021 pour terminer le dimanche 03/01/2021
rigolo non une semaine avec un seul jour ouvré 🤣🤣🤣🤣🤣
 

Patrick A

XLDnaute Nouveau
il faudra que m'explique @Patrick A selon lui
quelle est le Numéro de semaine du vendredi 1 janvier 2021
et quel est celui du du 28 décembre 2020
qui sont tout les deux dans la même semaine
🤣 🤣 🤣 🤣 🤣
si il y a des règles c'est pas pour rien
en france une semaine commence un lundi et termine un dimanche et décalée d'un jour en moins pour les autres de l'autre coté de l'atlantique
1 semaine est une semaine point barre ;)
il ne faut pas confondre les date calendaires et l'indexation des semaines
d'autant plus que pour excel et pour tout le monde sauf patrick A la semaine 1 de 2021 commence le lundi 04/01/2021
et tout les formule et calcul vba renverront cette date
si tu ne veux pas cette numérotation sert toi de no.semaine qui te donnera 1 pour le 1 janvier 2021
la semaine 1 commencera donc le vendredi 1 janvier 2021 pour terminer le dimanche 03/01/2021
rigolo non une semaine avec un seul jour ouvré 🤣🤣🤣🤣🤣
Bonjour,
J'ai bien compris toutes ces explications. Rien de nouveau.
Donc je réitère ma question.
Comment faire pour le dimanche 3 janvier 2021 et afficher s53/2020 (car cette date appartient bien à la semaine 53 de 2020).
J'ai réussi à le faire avec des SI imbriqués, mais je voulais savoir s'il n'existait pas une possibilité en une ou deux fonctions
NO.SEMAINE (3 janvier 2021, 21) donne bien 53
Maintenant je voudrais en déduire "simplement" 2020.

Le 3 janvier 2021 est bien entendu un exemple parmi d'autres.

Mais je vais me débrouiller seul.
 

patricktoulon

XLDnaute Barbatruc
dis moi ca serait pas le lundi de cette semaine que tu voudrais ??
le lundi d'une semaine d'une date est
la date - le jour de semaine de cette date +1
autrement dit en formule
en A1 j'ai 01/01/2021
en B1 je met ==A1-JOURSEM(A1;2)+1 et j'obtiens le lundi de cette semaine 28/12/2020

en vba c'est
VB:
Sub test()
    lelundi = CDate([A1].Value) - Weekday(CDate([A1].Value), vbUseSystemDayOfWeek) + 1
    MsgBox " le lundi qui précède le 01/01/2021 est le " & Format(lelundi, "dddd dd mm yyyy")
    MsgBox WorksheetFunction.WeekNum(lelundi, 2)
End Sub

le vendredi 01/01/2021 est donc bien dans la semaine 53 du lundi 28/12/2020
la semaine 53 de 2020 est a cheval sur 2 année
si je fait le calcul inverse
a savoir en A1 01/01/2020
en B1 je met =A1+(53*7)-1 j'obtiens bien le 1er lundi de l'année 2021 soit le 04/01/2021
 
Dernière édition:

Discussions similaires

Statistiques des forums

Discussions
315 109
Messages
2 116 300
Membres
112 716
dernier inscrit
jean1234