2 votes

Définir les règles de formatage global par condtionnement de manière programmatique

Je veux définir la couleur de fond de chaque ligne de la colonne "tâche" si la ligne de la colonne "statut" n'est pas vide. C'est assez facile à mettre en place. Cependant, définir ces règles sur de nombreuses colonnes et de la feuille 1 à la feuille 100 peut être très fastidieux.

Étant donné que toutes les feuilles ont les mêmes colonnes "tâche" et "statut", il devrait être possible de définir une règle conditionnelle sur chaque feuille. Comment puis-je le faire de manière programmatique ?

1voto

Max Makhrov Points 10182

Vous pouvez utiliser script pour accomplir cette tâche. Comme je le sais, il n'y a aucun moyen de faire un formatage conditionnel par le script, voici le problème . Mais vous pouvez copier le formatage :

  1. Créez une règle de mise en forme conditionnelle sur la "feuille clé".
  2. Exécuter le script

Voici le code à ajouter dans l'éditeur script :

function loopSheetsCopyFormatting() {

  var ss = SpreadsheetApp.getActiveSpreadsheet();
  var sheets = ss.getSheets();

  // define Key Sheet
  var keySheet = ss.getSheetByName('Sheet1'); // change to your's
  // define range with formatting
  var rangeAddress = 'A1:A1000'; // change to your's

  var sampleRange = keySheet.getRange(rangeAddress);
  var column = sampleRange.getColumn();
  var columnEnd = column + sampleRange.getWidth() - 1;
  var row = sampleRange.getRow();
  var rowEnd = row + sampleRange.getHeight() - 1; 

  for (var sheetNum = 0; sheetNum < sheets.length; sheetNum++) {

     var copyToSheet = sheets[sheetNum];
     // copy formatting
     sampleRange.copyFormatToRange(
       copyToSheet, 
       column, 
       columnEnd, 
       row, 
       rowEnd);     
  }

}

changer de ligne :

var keySheet = ss.getSheetByName('Sheet1'); // change to your's

et celui-ci :

var rangeAddress = 'A1:A1000'; // change to your's

Et puis lancez script une fois pour copier le farmatting.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X