Script pour activer la feuille du mois en cours

Bonjour,

J'ai essayé de transposer la solution apportée par Steelson au sujet des onglets/semaines, mais sans succès...

J'ai des fichiers Google sheets avec des onglets sous la forme Mois (majuscule et en entier) - espace - année sur 2 chiffres (JUILLET 22).

J'aimerais faire un script qui au 1er de chaque mois active la feuille du mois en cours à l'ouverture du fichier (et éventuellement mette son onglet en vert et remette l'onglet du mois précédent en blanc).

Merci pour votre aide...

J'ai essayé, mais la fonction Month() renvoie un nombre de 0 à 11 et chaque fois que je crois apercevoir une solution, je me casse le nez sur une autre problématique...

je précise, ce sont mes balbutiements sur Apps Script!

Cordialement,

Fil.

Bonjour,

getMonth() donne en effet un indice entre 0 et 11

Il faut dans ce cas construire un array avec les mois écrits exactement comme tu le souhaites et aller chercher la valeur selon l'indice du mois (attention, juillet = indice 6)

var tabMois = ["janvier","février","mars","avril","mai","juin","juillet","août","septembre","octobre","novembre","décembre"];

ou

var tabMois = ["JANVIER","FÉVRIER","MARS","AVRIL","MAI","JUIN","JUILLET","AOÛT","SEPTEMBRE","OCTOBRE","NOVEMBRE","DÉCEMBRE"];

attention, j'ai mis des accents comme le veut la règle orthographique française !

Exemple ...

function onOpen() {
  gotoPage();
}
function gotoPage() {
  const ss = SpreadsheetApp.getActive();
  const d = new Date()
  const tabMois = ["JANVIER","FÉVRIER","MARS","AVRIL","MAI","JUIN","JUILLET","AOÛT","SEPTEMBRE","OCTOBRE","NOVEMBRE","DÉCEMBRE"];
  const name = tabMois[d.getMonth()] + ' ' + d.getFullYear() % 100;
  const sh = ss.getSheetByName(name);
  sh.activate();
}

Merci Steelson,

Cela fonctionne parfaitement. Je n'aurais jamais trouvé la solution....

J'ai réussi à mettre l'onglet actif avec la couleur souhaitée: sh.activate().setTabColor('#00ff00');

Par contre, je ne vois pas comment mettre le mois N-1 en blanc...

As-tu une idée?

Merci beaucoup,

Fil.

Encore une question...

Comment fait-on pour mettre des accents sur les majuscules???

Merci,

Fil.

J'ai trouvé une astuce qui n'est pas très élégante, mais qui devrait fonctionner...

Je fais un script identique nommé ancienOnglet qui génère la couleur blanche sur l'onglet du mois en cours.

Je mets un déclencheur le 1er de chaque mois entre minuit et 1 heure pour cette fonction.

Et, ...

Rectificatif, le dernier jour du mois après 23h00...

Cela fonctionne si personne n'ouvre le fichier entre le déclencheur et le lendemain...

Donc, ce n'est pas parfait...

J'ai réussi à mettre l'onglet actif avec la couleur souhaitée: sh.activate().setTabColor('#00ff00');

Par contre, je ne vois pas comment mettre le mois N-1 en blanc...

en utilisant ceci https://developers.google.com/apps-script/reference/spreadsheet/sheet#settabcolorcolor sur le mois précédent

function onOpen() {
  gotoPage();
}
function gotoPage() {
  const ss = SpreadsheetApp.getActive();
  const d = new Date()
  const tabMois = ["JANVIER", "FÉVRIER", "MARS", "AVRIL", "MAI", "JUIN", "JUILLET", "AOÛT", "SEPTEMBRE", "OCTOBRE", "NOVEMBRE", "DÉCEMBRE"];
  const name = tabMois[d.getMonth()] + ' ' + d.getFullYear() % 100;
  const sh = ss.getSheetByName(name);
  sh.activate();
  sh.setTabColor('#00FF00')
  if (d.getMonth() == 0) {
    ss.getSheetByName(tabMois[11] + ' ' + (+d.getFullYear() % 100 - 1)).setTabColor(null)
  } else {
    ss.getSheetByName(tabMois[+d.getMonth() - 1] + ' ' + d.getFullYear() % 100).setTabColor(null)
  }
}

ou balayer tous les onglets et mettre à blanc sauf l'onglet du mois en cours

Rectificatif, le dernier jour du mois après 23h00...

Cela fonctionne si personne n'ouvre le fichier entre le déclencheur et le lendemain...

Donc, ce n'est pas parfait...

je n'ai pas compris ! est-ce que la solution proposée ci-dessus est suffisante ?

Comment fait-on pour mettre des accents sur les majuscules???

sous windows

Un truc délirant malheureusement proposé (je n'ai jamais vu quelque chose d'aussi pu ergonomique)

ALT+128 : Ç (ç cédille majuscule)
ALT+144 : É (é accent aigu majuscule)
etc.

Ou tu tapes dans A1 é et tu fais =majuscule(A1)

Mais le meilleur et de loin c'est de charger Clavier+ https://www.commentcamarche.net/telecharger/utilitaires/5947-clavier/ qui permet aussi d'avoir des phrases toutes faites stockés dans un raccourci

avec un chromebook

en capslock, tu tapes directement é pour avoir É

C'est excellent Steelson: tout fonctionne à la perfection...

Je vais passer par le tableau des codes ASCII combiné à la touche 'Alt' pour les majuscules avec accent...

Merci beaucoup pour ton aide.

Tu m'as fait gagner un temps précieux et surtout ça fait parfaitement le job...

Bon dimanche,

Cordialement,

Fil.

Rechercher des sujets similaires à "script activer feuille mois cours"