Google App Script: Bedingte Formatierung

CasRX1988

Newbie
Registriert
Aug. 2016
Beiträge
4
Hallo erst mal, ich bin ein absoluter Anfänger und schlecht in Englisch. Das wird sich ändern, aber jetzt brauche ich Eure Hilfe!

Ich möchte eine Bedingte Formatierung über ein Script ausführen.



Beispiel:

In A1 steht ein Wert, ist der Wert aber größer als in A2, soll sich der Hintergrund in A1 in rot verfärben.

Soweit bin ich schon gekommen, ohne Hilfe:

Code:
function farbtest() {
 var ss = SpreadsheetApp.getActiveSpreadsheet();
 var sheet = ss.getSheets()[0];
 var colors = [ ["red"] ];

  var cell = sheet.getRange("B5");
 cell.setBackgrounds(colors);
}


Jedoch weiß ich nicht, wie ich einen Vergleich einbauen soll.
Das er also schaut welcher Wert in A2 steht und wenn der Wert in A1 größer ist, diese Zelle sich in rot verfärbt.

Ein ähnliche Funktion habe ich schon gefunden, bekomme diese aber nicht abgeändert!:(


Code:
function onEdit(e) {
var ss = e.source;
var sheet = ss.getActiveSheet();
var range = sheet.getRange("A:B");
var values = range.getValues();
//for each row that data is present
for(var i = 0; i < values.length; i++) {
var cell = sheet.getRange(i + 1, 2);
//check if the first value of that row is exactly "United States"
if(values[i][0] === "United States") {
//if it is, check for a blank cell. If so, make it red.
if(values[i][1] === "") {
cell.setBackground('red');
} else {
cell.setBackground('white');
}
} else {
//In any other case, make it white.
cell.setBackground('white');
}
} 
}


P.S: ich beschäftige mich erst seit ein paar Tagen mit dem Scripten und mein Englisch ist auch recht schlecht.
Ich hoffe Ihr könnt mir helfen!:D
Ergänzung ()

Hallo, also ich habe eine Lösung schon gefunden.

Jedoch funktioniert es nicht automatisch. Ich muss das Script immer manuell starten.


Woran liegt es? Ich habe es schon mit function onEdit(event) {} und function onChange () {} versucht.

Aber leider funktioniert das auch nicht.

Code:
function farbe() {
var ss = SpreadsheetApp.getActiveSpreadsheet();
var sheet = ss.getSheets()[0];
var cella1=sheet.getRange("E13");
var cella2=sheet.getRange("E10");

if(cella1.getValues()[0][0]>cella2.getValues()[0][0]){
  cella1.setBackground("red");
}else{
  cella1.setBackground("white");
}
  
var cella3=sheet.getRange("F13");
var cella4=sheet.getRange("F10");

if(cella3.getValues()[0][0]>cella4.getValues()[0][0]){
  cella3.setBackground("red");
}else{
  cella3.setBackground("white");
}
  
var cella5=sheet.getRange("G13");
var cella6=sheet.getRange("G10");

if(cella5.getValues()[0][0]>cella6.getValues()[0][0]){
  cella5.setBackground("red");
}else{
  cella5.setBackground("white");
}
  
var cella7=sheet.getRange("H13");
var cella8=sheet.getRange("H10");

if(cella7.getValues()[0][0]>cella8.getValues()[0][0]){
  cella7.setBackground("red");
}else{
  cella7.setBackground("white");
}
  
var cella9=sheet.getRange("I13");
var cella10=sheet.getRange("I10");

if(cella9.getValues()[0][0]>cella10.getValues()[0][0]){
  cella9.setBackground("red");
}else{
  cella9.setBackground("white");
}
  
var cella11=sheet.getRange("J13");
var cella12=sheet.getRange("J10");

if(cella11.getValues()[0][0]>cella12.getValues()[0][0]){
  cella11.setBackground("red");
}else{
  cella11.setBackground("white");
}
  
var cella13=sheet.getRange("K13");
var cella14=sheet.getRange("K10");

if(cella13.getValues()[0][0]>cella14.getValues()[0][0]){
  cella13.setBackground("red");
}else{
  cella13.setBackground("white");
}
}
 
Zuletzt bearbeitet:
Den Code hast du ja anscheinend schon und laut kurzem Test funktioniert's.
Ich habe gerade mal etwas rumprobiert...Trigger kannst du ganz bequem folgendermaßen setzen (siehe Anhang).
Etwas kurious: Bei mir funktioniert das automatische Aktualisieren nur, wenn ich beide Trigger aktiv habe.

Grüße!
 

Anhänge

  • Unbenannt.png
    Unbenannt.png
    56,9 KB · Aufrufe: 514
Danke für die Antwort.

Ich habe es etwas anders gelöst.
Habe die

function farbe

gegen


function onEdit(event)


ersetzt.

Jetzt läuft es.

Dennoch vielen vielen dank!
 
Zurück
Oben