Bonjour,
Voici les modifications :
- limiter les bords rouge entre la ligne 8 et 37?
REMPLACER :
var colonneCible = sheet.getRange(1, i+6, sheet.getMaxRows(), 1);
PAR :
var colonneCible = sheet.getRange(8, i+6, 37, 1);
- pour les lignes 2 , 3 et 4, je voudrais uniquement faire un remplissage rouge ==> ça je pense le faire en MFC , ou c'est mieux avec le script ?
Tout dépend des conditions, de la taille du fichier, des MFC sont bien pour des fichiers limités en taille, c'est bien plus simple à mettre en place et modifier.
Pour les fichiers plus lourds, une MFC ralenti fortement l'exécution et un script est plus optimisé.
Est-ce qu'il existe des cours pour s'améliorer ?
Concernant les cours, ce site comporte beaucoup d'informations, voici le début du cours :
https://www.sheets-pratique.com/fr/apps-script/introduction
par exemple la différence entre "var" et "cons"
var = une variable, la donnée contenue peut être modifiée durant l'exécution. (il est aussi possible d'utiliser let)
const = une constante, n'est pas amené à être modifié, permet un gain de rapidité par rapport à une variable.
sheet.getRange(5,6,sheet.getMaxRows(),nbColonnes)"
Alors, la ligne complète, c'est : var range = sheet.getRange(5,6,sheet.getMaxRows(),nbColonnes);
Donc, je stocke dans une variable "var = range" une plage, qui se situe dans la feuille sheet "sheet.getRange" puis, 2 solutions pour annoncer une plage, soit de manière standard : A1:B10 par ex, soit, en indiquant : numéro de ligne départ, numéro de colonne départ, nombre de lignes, nombre de colonnes, pour reprendre l'exemple A1:B10 cela donne : 1,1,10,2
Donc, dans ce cas, la ligne départ est la 5ème (sous l'en-tête), la colonne départ la 6ème, puis le nombre de lignes, au lieu de mettre un nombre je mets toutes les lignes de la feuille à l'aide de getMaxRows() et enfin le nombre de colonnes, j'avais déjà récupéré et stocké cette donnée précédemment dans la variable nbColonnes : const nbColonnes = sheet.getLastColumn();
J'aurais très bien pu écrire : var range = sheet.getRange(F5:AC37); mais, dans ce cas, si votre fichier évolue, que ce soit le nombre de colonnes ou de ligne, il faut aller dans le script, modifier la plage, ce qui n'est pas très pratique, donc je préfère utiliser des positions relatives, qui évoluent en cas de modification.
Pour terminer sur cette ligne, stocker cette plage dans la variable range permet ensuite de réinitialiser le format, en y appliquant des lignes de bordures grises, car sinon, jour après jour, le script va encadrer en rouge le jour + cycle actuel, mais les anciens le resterons :
range.setBorder(true, true, false, false, false, true, "#CCCCCC", SpreadsheetApp.BorderStyle.SOLID)