Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

APIs Google Discussion :

Automatiser l'écriture des jours d'un calendrier


Sujet :

APIs Google

  1. #1
    Nouveau membre du Club
    Automatiser l'écriture des jours d'un calendrier
    Bonjour à tous.
    J'ai un calendrier dont je voudrais automatiser l'écriture des jours suivant un thème graphique comme
    dans la capture d'écran ci-joint.
    7 colonnes (1 par jour) en gardant les fonctions temps ( années, mois, jours).
    Mais je ne sais pas par ou commencer !
    Peut être une macro ?
    Si quelqu’un peut me donner une direction à suivre.
    Merci d'avance.
    Linux, xfce, ff, Android dev (éternel débutant).

  2. #2
    Modérateur

    Salut,

    J'avoue avoir lutté un peu et je suis arrivé à ça :

    Code :Sélectionner tout -Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    var MONTHS_LUT = [ 'Janvier', 'Février', 'Mars', 'Avril', 'Mai', 'Juin', 'Juillet', 'Aôut', 'Septembre', 'Octobre', 'Novembre', 'Décembre' ];
     
    function CALENDRIER(month) {
      // Check input
      if (month < 1 || month > 12) {
        return '1 - 12 attendu';
      }
     
      // Generate dates
      var results = new Array(6); // a month may span on 6 weeks
      for (var i = 0; i < results.length; ++i) {
        results[i] = new Array(7);
      }
     
      // Compute number of days in month
      // See https://stackoverflow.com/questions/1184334/get-number-days-in-a-specified-month-using-javascript
      var date = new Date(2019, month, 0);
      var daysCount = date.getDate();
     
      // Compute first day of the month
      // According to https://developer.mozilla.org/fr/docs/Web/JavaScript/Reference/Objets_globaux/Date/getUTCDay
      // 0 should be Sunday
      // Tests show that 0 is Monday...  
      date = new Date(2019, month - 1, 1);
      var firstDay = date.getUTCDay();
     
      for (var i = 0; i < daysCount; ++i) {
        var j = i + firstDay;
        var week = Math.floor(j / 7);
        var offset = j % 7;
        results[week][offset] = i + 1;
      }
     
      // Add days
      results.unshift(['Lundi', 'Mardi', 'Mercredi', 'Jeudi', 'Vendredi', 'Samedi', 'Dimanche']);
     
      // Add month
      results.unshift(MONTHS_LUT[month - 1]);
     
      return results;
    }


    Du coup si en A1 tu utilises la formule CALENDRIER(9), tu obtiens :

  3. #3
    Nouveau membre du Club
    Merci beaucoup Bktero, intéressant, j'adapte et j'adopte !
    Linux, xfce, ff, Android dev (éternel débutant).

###raw>template_hook.ano_emploi###