Condition si une plage contient une couleur spécifique

Résolu/Fermé
mafia97231 Messages postés 26 Date d'inscription mercredi 27 novembre 2013 Statut Membre Dernière intervention 3 mars 2023 - 8 sept. 2022 à 10:45
mafia97231 Messages postés 26 Date d'inscription mercredi 27 novembre 2013 Statut Membre Dernière intervention 3 mars 2023 - 8 sept. 2022 à 17:00

Bonjour à tous,

Je cherche à réaliser un script me permettant de mettre en forme une cellule cible si dans ma plage de référence se trouve une cellule avec une couleur de fond spécifique.

Ainsi, si une cellule de ma plage 'A1:E1' a un fond rouge donc D1 prends la valeur 'ALERTE' avec une police rouge. Sinon, D1 prends la valeur 'OK' avec une police verte.

Le code suivant ne fonctionne pas :

var spreadsheet = SpreadsheetApp.getActiveSpreadsheet();
var sheet = spreadsheet.getActiveSheet();

const red = '#ff0000';
const green = ''#00ff00';

var referenceRange = sheet.getRange('A1:E1');
var rangeColor = referenceRange.getBackgroundsColors();
var targetRange = sheet.getRange('D1');

  if (rangecolor === red)
{
targetRange.setFontColor(red).setValue('ALERTE')
} 
else
{
targetRange.setFontColor(green).setValue('OK')
};

Une solution ?


Windows / Chrome 105.0.0.0

1 réponse

mafia97231 Messages postés 26 Date d'inscription mercredi 27 novembre 2013 Statut Membre Dernière intervention 3 mars 2023 2
8 sept. 2022 à 17:00

Le problème venait de la syntaxe de 'getBackgroundColor'.

le bon code :



function myFunction() {

var spreadsheet = SpreadsheetApp.getActiveSpreadsheet();
var sheet = spreadsheet.getActiveSheet();

const red = '#ff0000';
const green = '#00ff00';

var referenceRange = sheet.getRange('A1:E1');
var rangeColor = referenceRange.getBackgroundColor() ;
var targetRange = sheet.getRange('D1');

if (rangeColor === red)
{
targetRange.setFontColor(red).setValue('ALERTE')
} 
else
{
targetRange.setFontColor(green).setValue('OK')
};
}

Merci, à bientôt.

1