• Das Erstellen neuer Accounts wurde ausgesetzt. Bei berechtigtem Interesse bitte Kontaktaufnahme über die üblichen Wege. Beste Grüße der Admin

[GELÖST] Google App Script: Bedingte Formatierung

CasRx1988

New member
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:
HTML:
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!
HTML:
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!
 
Zuletzt bearbeitet von einem Moderator:
Setze bitte nächstes mal deinen Code in [ code] und [ /code] (ohne Leerzeichen nach "["), wird er hervorgehoben und je nach Sprache nach Syntax formatiert.
Zu deiner Frage: Generell ist ein Vergleich in JS mit if möglich.
Über die Spreadsheet-JS-Funktionen weiß ich nicht so viel. Von den von dir geposteten Codes her könnte die Funktion so aussehen:
Code:
function farbtest() {
var ss = SpreadsheetApp.getActiveSpreadsheet();
var sheet = ss.getSheets()[0];
var cella1=sheet.getRange("A1");
var cella2=sheet.getRange("A2");

if(cella1.getValues()[0][0]>cella2.getValues()[0][0]){
  cella1.setBackground("red");
}else{
  cella1.setBackground("white");
}
}
Deine Englischkenntnisse sind mir egal. Selbst wenn die meisten Programmiersprachen englische Befehle enthalten, muss man dazu kein Englisch können.
 
Vielen vielen dank!

- - - Aktualisiert - - -

Ich brauche noch mal Deine Hilfe @paul schmitz.


Ich die Funktion läuft.

Das Problem ist, Ich muss sie jedesmal manuell ausführen, damit sie läuft.

Beispiel: Der Werte X wurde überschritten, die Zelle färbt sich rot.
Wenn der Wert dann wider unterschritten oder gelöscht wird, bleibt die Zelle aber rot.

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");
}
}



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

Aber leider funktioniert das auch nicht.
 
Zuletzt bearbeitet:
Habe das Problem schon gelöst.

Er hatte die Farbe nicht gewechselt.

Jetzt geht es, der Anfang sieht jetzt so aus:

Code:
function onEdit(event) {
  
  farbe();
}


function farbe(){
 
Zurück
Oben