web-dev-qa-db-fra.com

Cellule clignotante dans Google Sheets en fonction du contenu de la cellule

J'essaie de faire clignoter une cellule (couleurs alternées blanc-rouge) lorsqu'elle contient le mot "rouge". J'ai actuellement le code suivant que j'ai trouvé, mais je ne sais pas comment le modifier pour rechercher particulièrement le mot à chaque fois qu'une modification est effectuée.

function onEdit(e)
{
  var ss = SpreadsheetApp.getActiveSpreadsheet();
  var mysheet = ss.getSheetByName("LBACC17");
  var activeCell = ss.getActiveCell().getA1Notation();

  if( activeCell == "K2" )
  {
    for(var i=0;i<50;i++)
    {
      if( i%2 == 0 )
        mysheet.getRange("K3").setBackground("RED");
      else
        mysheet.getRange("K3").setBackground("WHITE");

      SpreadsheetApp.flush();
      Utilities.sleep(500);
    }
  }
}
1
Areki

Cela vous permettra de vous mettre en route, mais vous voudrez probablement soit réduire le temps de boucle, soit cocher si/lorsque la cellule est remplacée par autre chose que "Rouge", sinon, il continuera de clignoter jusqu'à la boucle. complète.

function onEdit(event){

  var ss = SpreadsheetApp.getActiveSpreadsheet();
  var sh = ss.getSheets()[0]; // 0 == first sheet.
  var ee = event.source.getActiveRange().getA1Notation();
  if (ee == "K2") { // Check if edited cell is the one we're watching.
    if (event.value == "Red"){ // If the value == "Red", do stuff.
      var toggle = sh.getRange("K2");

      for(var i=0;i<50;i++) {
      if( i%2 == 0 )
        toggle.setBackground("RED");
      else
        toggle.setBackground("WHITE");

      SpreadsheetApp.flush();
      Utilities.sleep(500);
      }
    }
  }
}

Edit: Assurez-vous de bien prendre en compte la nature trop simpliste de ce script, comme l’a noté Ruben dans les commentaires ci-dessous. Il y a beaucoup de place pour que cela se concrétise pour traiter les cas Edge.

1
David Metcalfe