Google Apps Script : modifier la couleur des onglets G Sheet en fonction d’une condition

24 1

Manuellement il est assez facile de modifier la couleur d’un onglet Google Sheet, mais cela peut vite devenir fastidieux si vous avez de nombreux onglets ou si vous souhaitez que la couleur de votre onglet soit modifiée en fonction d’une condition, par exemple que la feuille soit vide ou qu’une plage de cellules soit vide (cf question posée sur la communauté Google + Google Sheets (Tableur), Scripts, Formulaires (Fr)).

 

NOTA : dans les scripts et variables disponibles ci-dessous, certains signes sont à modifier  dans votre éditeur de script. Pour gagner du temps vous pouvez utiliser la fonction “Rechercher et Remplacer” :

Encore plus simple, vous pouvez faire une copie de ce fichier !

 

Exemple n°1 : Si la feuille Google Sheet ne contient aucune donnée

Voici le code à copier/coller dans votre éditeur de script :

function emptySheetAndColorTab() {
var ss = SpreadsheetApp.getActiveSpreadsheet();
var allSheets = ss.getSheets();
for(var i=0;i<allSheets.length;i++) {
var lastrow = allSheets[i].getLastRow();
// si la feuille est vide, applique telle couleur d’onglet
if( lastrow == 0 )
allSheets[i].setTabColor(“EE82EE”);
// si la feuille n’est pas vide, applique telle couleur d’onglet
else
allSheets[i].setTabColor(“FFFF00”);
}
}

Exemple n°2 : Si la feuille Google Sheet ne contient aucune donnée après la ligne d’entête de colonne

Voici le code à copier/coller dans votre éditeur de script :

function emptySheetAndColorTab2() {
var ss = SpreadsheetApp.getActiveSpreadsheet();
var allSheets = ss.getSheets();
var ligneEntete = 2; //à modifier selon les besoins
for(var i=0;i<allSheets.length;i++) {
var lastrow = allSheets[i].getLastRow();
// s’il n’y pas de données après la ligne d’entête, applique telle couleur d’onglet
if( lastrow <= ligneEntete )
allSheets[i].setTabColor(“EE82EE”);
// s’il y a des données après la ligne d’entête, applique telle couleur d’onglet
else
allSheets[i].setTabColor(“FFFF00”);
}
}

Exemple n°3 : Si la feuille Google Sheet ne contient aucune donnée dans une plage définie

Voici le code à copier/coller dans votre éditeur de script :

function emptyRangeAndColorTab() {
var ss = SpreadsheetApp.getActiveSpreadsheet();
var allSheets = ss.getSheets();
var range = “B3:J20”; //à modifier selon les besoins
for(var i=0;i<allSheets.length;i++) {
var zoneVerif = allSheets[i].getRange(range);
// si la plage de cellule est vide, applique telle couleur d’onglet
if( zoneVerif.isBlank())
allSheets[i].setTabColor(“EE82EE”);
// si la plage de cellule n’est pas vide, applique telle couleur d’onglet
else
allSheets[i].setTabColor(“FFFF00”);
}
}

Définir la couleur à utiliser :

En matière de couleur, le choix est large, à vous de donner la bonne référence. Vous trouverez sur ce site plus de 140 références : https://www.w3schools.com/cssref/css_colors.asp

Vous pouvez indiquer dans votre script le code hexadécimal de la couleur choisie (“FFFF00” = jaune) ou créer des variables “couleur” et les utiliser en lieu et place du code hexadécimal :

allSheets[i].setTabColor(“FFFF00”); = allSheets[i].setTabColor(NOM DE VOTRE VARIABLE COULEUR JAUNE);

Voici une liste de variables “couleur” que vous pouvez copier/coller dans votre éditeur de scripts :

 Copiez les variables à partir ce fichier ou créez une copie de ce fichier.

var colAliceBlue = “F0F8FF”
var colAntiqueWhite = “FAEBD7”
var colAqua = “00FFFF”
var colAquamarine = “7FFFD4”
var colAzure = “F0FFFF”
var colBeige = “F5F5DC”
var colBisque = “FFE4C4”
var colBlack = “000000”
var colBlanchedAlmond = “FFEBCD”
var colBlue = “0000FF”
var colBlueViolet = “8A2BE2”
var colBrown = “A52A2A”
var colBurlyWood = “DEB887”
var colCadetBlue = “5F9EA0”
var colChartreuse = “7FFF00”
var colChocolate = “D2691E”
var colCoral = “FF7F50”
var colCornflowerBlue = “6495ED”
var colCornsilk = “FFF8DC”
var colCrimson = “DC143C”
var colCyan = “00FFFF”
var colDarkBlue = “00008B”
var colDarkCyan = “008B8B”
var colDarkGoldenRod = “B8860B”
var colDarkGray = “A9A9A9”
var colDarkGrey = “A9A9A9”
var colDarkGreen = “006400”
var colDarkKhaki = “BDB76B”
var colDarkMagenta = “8B008B”
var colDarkOliveGreen = “556B2F”
var colDarkOrange = “FF8C00”
var colDarkOrchid = “9932CC”
var colDarkRed = “8B0000”
var colDarkSalmon = “E9967A”
var colDarkSeaGreen = “8FBC8F”
var colDarkSlateBlue = “483D8B”
var colDarkSlateGray = “2F4F4F”
var colDarkSlateGrey = “2F4F4F”
var colDarkTurquoise = “00CED1”
var colDarkViolet = “9400D3”
var colDeepPink = “FF1493”
var colDeepSkyBlue = “00BFFF”
var colDimGray = “696969”
var colDimGrey = “696969”
var colDodgerBlue = “1E90FF”
var colFireBrick = “B22222”
var colFloralWhite = “FFFAF0”
var colForestGreen = “228B22”
var colFuchsia = “FF00FF”
var colGainsboro = “DCDCDC”
var colGhostWhite = “F8F8FF”
var colGold = “FFD700”
var colGoldenRod = “DAA520”
var colGray = “808080”
var colGrey = “808080”
var colGreen = “008000”
var colGreenYellow = “ADFF2F”
var colHoneyDew = “F0FFF0”
var colHotPink = “FF69B4”
var colIndianRed = “CD5C5C”
var colIndigo = “4B0082”
var colIvory = “FFFFF0”
var colKhaki = “F0E68C”
var colLavender = “E6E6FA”
var colLavenderBlush = “FFF0F5”
var colLawnGreen = “7CFC00”
var colLemonChiffon = “FFFACD”
var colLightBlue = “ADD8E6”
var colLightCoral = “F08080”
var colLightCyan = “E0FFFF”
var colLightGoldenRodYellow = “FAFAD2”
var colLightGray = “D3D3D3”
var colLightGrey = “D3D3D3”
var colLightGreen = “90EE90”
var colLightPink = “FFB6C1”
var colLightSalmon = “FFA07A”
var colLightSeaGreen = “20B2AA”
var colLightSkyBlue = “87CEFA”
var colLightSlateGray = “778899”
var colLightSlateGrey = “778899”
var colLightSteelBlue = “B0C4DE”
var colLightYellow = “FFFFE0”
var colLime = “00FF00”
var colLimeGreen = “32CD32”
var colLinen = “FAF0E6”
var colMagenta = “FF00FF”
var colMaroon = “800000”
var colMediumAquaMarine = “66CDAA”
var colMediumBlue = “0000CD”
var colMediumOrchid = “BA55D3”
var colMediumPurple = “9370DB”
var colMediumSeaGreen = “3CB371”
var colMediumSlateBlue = “7B68EE”
var colMediumSpringGreen = “00FA9A”
var colMediumTurquoise = “48D1CC”
var colMediumVioletRed = “C71585”
var colMidnightBlue = “191970”
var colMintCream = “F5FFFA”
var colMistyRose = “FFE4E1”
var colMoccasin = “FFE4B5”
var colNavajoWhite = “FFDEAD”
var colNavy = “000080”
var colOldLace = “FDF5E6”
var colOlive = “808000”
var colOliveDrab = “6B8E23”
var colOrange = “FFA500”
var colOrangeRed = “FF4500”
var colOrchid = “DA70D6”
var colPaleGoldenRod = “EEE8AA”
var colPaleGreen = “98FB98”
var colPaleTurquoise = “AFEEEE”
var colPaleVioletRed = “DB7093”
var colPapayaWhip = “FFEFD5”
var colPeachPuff = “FFDAB9”
var colPeru = “CD853F”
var colPink = “FFC0CB”
var colPlum = “DDA0DD”
var colPowderBlue = “B0E0E6”
var colPurple = “800080”
var colRebeccaPurple = “663399”
var colRed = “FF0000”
var colRosyBrown = “BC8F8F”
var colRoyalBlue = “4169E1”
var colSaddleBrown = “8B4513”
var colSalmon = “FA8072”
var colSandyBrown = “F4A460”
var colSeaGreen = “2E8B57”
var colSeaShell = “FFF5EE”
var colSienna = “A0522D”
var colSilver = “C0C0C0”
var colSkyBlue = “87CEEB”
var colSlateBlue = “6A5ACD”
var colSlateGray = “708090”
var colSlateGrey = “708090”
var colSnow = “FFFAFA”
var colSpringGreen = “00FF7F”
var colSteelBlue = “4682B4”
var colTan = “D2B48C”
var colTeal = “008080”
var colThistle = “D8BFD8”
var colTomato = “FF6347”
var colTurquoise = “40E0D0”
var colViolet = “EE82EE”
var colWheat = “F5DEB3”
var colWhite = “FFFFFF”
var colWhiteSmoke = “F5F5F5”
var colYellow = “FFFF00”
var colYellowGreen = “9ACD32”

Notez cette information
[Total: 0 Average: 0]

1 comment

  1. Bonjour. Je prépare des suivis d’eleves Avec Google Sheet. Chaque élève est suivi dans un classeur individuel dont les rubriques sont des feuilles. Sur le fichier modèle, le script de Monsieur FRITSCH fonctionne à merveille et l’onglet des feuilles où des changements sont opérés se colorent comme prévu. Mais lorsque je veux faire des copies du fichier, une par élève, les « déclencheurs » comme celui qui fait démarrer le script en cas de changement de la cellule c9, ne fonctionne plus. Il me faut alors installer à nouveau un trigger manuellement pour chaque fichier. J’en ai 600! Pouvez-vous m’aider ?

Laisser un commentaire

Share This

Share This

Share this post with your friends!