Renvoyer le numéro de la semaine à un calendrier

cocoponey Messages postés 16 Date d'inscription   Statut Membre Dernière intervention   -  
thev Messages postés 1987 Date d'inscription   Statut Membre Dernière intervention   -
Bonjour,

Je souhaiterai faire une macro qui permette de remplir les dates automatiquement en fonction de la semaine. Je m'explique :
J'aimerai que l'utilisateur rentre le numéro de la semaine, et que "semaine du : / / au / / " se remplisse automatiquement. Quelqu'un pourrait-il m'aider ?
Merci d'avance.
A voir également:

4 réponses

PHILOU10120 Messages postés 6445 Date d'inscription   Statut Contributeur Dernière intervention   824
 
Bonjour cocoponey

Sans macro avec une formule

Mettre en A1 l'année "2016"
en A2 la numéro de semaine "48"
En B1 cette formule

="Semaine "&A2&" du lundi "&TEXTE(DATE($A$1;1;1)+SI(NO.SEMAINE(DATE($A$1;1;1);21)>1;7+1-JOURSEM(DATE($A$1;1;1);2);1-JOURSEM(DATE($A$1;1;1);2))+($A$2-1)*7;"jj/mm/aaaa")&" au vendredi "&TEXTE(DATE($A$1;1;1)+SI(NO.SEMAINE(DATE($A$1;1;1);21)>1;7+1-JOURSEM(DATE($A$1;1;1);2);1-JOURSEM(DATE($A$1;1;1);2))+($A$2-1)*7+4;"jj/mm/aaaa")

le résultat qui s'affiche en B1

"Semaine 48 du lundi 28/11/2016 au vendredi 02/12/2016"

0
DjiDji59430 Messages postés 4253 Date d'inscription   Statut Membre Dernière intervention   700
 
Bonjour,

Avec des tables :

https://www.cjoint.com/c/FExi1hMCfhG
0
PHILOU10120 Messages postés 6445 Date d'inscription   Statut Contributeur Dernière intervention   824
 
Attention le numérotage des semaines pour la France
=NO.SEMAINE(numéro de série;21)
0
michel_m Messages postés 16602 Date d'inscription   Statut Contributeur Dernière intervention   3 314
 
Bonjour
date du lundi avec année en A1 et semaine en B1
=TEXTE(7*B1+DATE(A1;1;1)-JOURSEM(DATE(A1;1;3))-3; " jj/mm/aa")
et du vendredi
=TEXTE(7*B1+DATE(A1;1;1)-JOURSEM(DATE(A1;1;3))+1; " jj/mm/aa")

tu peux soit concaténer les 2 formules avec du texte; pour ma part, je caserai la formule du lundi dans 1cellules planquée quelque part par ex en Z1
="Semaine du "&Z1&" au " &Texte(Z1+7;"jj/mm/aa")
 Michel
0
thev Messages postés 1987 Date d'inscription   Statut Membre Dernière intervention   715
 
Bonjour,

Tu peux utiliser la fonction que j'ai développée
lib_semaine(Année; semaine)

CODE
Function lib_semaine(Année, semaine)

'premier jeudi de l'année
date_premier_an = DateSerial(Année, 1, 1)
For j = 0 To 6
date_premier_jeudi = date_premier_an + j
jour = Format(date_premier_jeudi, "dddd", vbMonday)
If jour = "jeudi" Then Exit For
Next

'date jeudi de la semaine
date_jeudi_semaine = date_premier_jeudi + (semaine - 1) * 7
'date début de la semaine
date_lundi_semaine = date_jeudi_semaine - 3
'date fin de la semaine
date_vendredi_semaine = date_jeudi_semaine + 1

'libellé de la semaine
lib_semaine = "du " & Format(date_lundi_semaine, "ddmmmyyyy") & " au " & Format(date_vendredi_semaine, "ddmmmyyyy")

End Function

0