Renvoyer le numéro de la semaine à un calendrier

cocoponey Messages postés 16 Statut Membre -  
thev Messages postés 2011 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.

4 réponses

  1. PHILOU10120 Messages postés 6463 Date d'inscription   Statut Contributeur Dernière intervention   835
     
    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
  2. DjiDji59430 Messages postés 4280 Date d'inscription   Statut Membre Dernière intervention   718
     
    Bonjour,

    Avec des tables :

    https://www.cjoint.com/c/FExi1hMCfhG
    0
    1. PHILOU10120 Messages postés 6463 Date d'inscription   Statut Contributeur Dernière intervention   835
       
      Attention le numérotage des semaines pour la France
      =NO.SEMAINE(numéro de série;21)
      0
  3. michel_m Messages postés 18903 Date d'inscription   Statut Contributeur Dernière intervention   3 320
     
    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
  4. thev Messages postés 2011 Date d'inscription   Statut Membre Dernière intervention   724
     
    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