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

1372 2

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"

Si vous avez trouvé une faute d’orthographe, veuillez nous en informer en sélectionnant le texte en question et en appuyant sur Ctrl + Entrée .

2 commentaires

  1. Avatar

    Merci. J y vois plusieurs usages dans mo’ activité pro et gestion des personnes suivies , Je vais mettre cela en application !

  2. Avatar

    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

Ce site utilise Akismet pour réduire les indésirables. En savoir plus sur comment les données de vos commentaires sont utilisées.

Rapport de faute d’orthographe

Le texte suivant sera envoyé à nos rédacteurs :