poergen
Goto Top

Bool Schleife einbauen

Hallo... Ich bin Programmieranfänger in JS und habe mit einem Kumpel einen Code geschrieben. Dieser soll aber nur ausgeführt werden bzw eine EMail senden, wenn er auch etwas gefunden hat. Aber das klappt nicht. Ich bekomme trotzdem eine Mail, obwohl er nichts findet! Mein Kumpel hat leider z.Zt. keine Zeit dafür und ich weiß nicht, wo oder wie die Schleife eingebaut werden kann. Ohne fremde Hilfe bekomme ich das noch nicht hin - leider! Ich danke für eure Unterstützung!

function EmailOrder() {
  // Hier die Spreadsheet-ID, den Tabellennamen und die E-Mail-Adresse aktualisieren
  var spreadsheetId = "xxx";  
  var sheetName = "xxx";  
  var recipientEmail = "xxx";  

   // Spreadsheet und Sheet öffnen
  var spreadsheet = SpreadsheetApp.openById(spreadsheetId);
  var sheet = spreadsheet.getSheetByName(sheetName);

  // Hier den gewünschten Bereich aktualisieren
  var range = sheet.getDataRange();
  
  // Daten und Formatierung aus dem Bereich erhalten
  var values = range.getValues();
  var fontColors = range.getFontColors();

  // HTML-Nachricht zusammenstellen
  var emailSubject = "xxx";  
  var emailBody = "<ul>";  

  // Überprüfen und Daten hinzufügen, wenn die Schriftfarbe vorhanden ist
  for (var i = 0; i < values.length; i++) { 
    var cell1Color = fontColors[i][0]; 
    var cell2Color = fontColors[i][1];

    // Überprüfen, ob die Schriftfarbe in einer der beiden Zellen vorhanden ist
    if ((cell1Color !== null && cell1Color !== '#000000') || (cell2Color !== null && cell2Color !== '#000000')) {  
      emailBody += "<li>" + values[i][0] + " &nbsp;&nbsp;|&nbsp;&nbsp; " + values[i][1] + "</li>";  

      if (i % 2 === 1) { // Nach jedem zweiten Ergebnis
        emailBody += "";  
      }
    }
  }

  emailBody += "</ul>";   

  // E-Mail senden
  MailApp.sendEmail({
    to: recipientEmail,
    subject: emailSubject,
    htmlBody: emailBody,
  });
}

Content-ID: 82479249596

Url: https://administrator.de/contentid/82479249596

Ausgedruckt am: 24.11.2024 um 15:11 Uhr

12168552861
12168552861 05.04.2024 aktualisiert um 12:23:08 Uhr
Goto Top
Wurde dir hier doch schon x mal mal gezeigt, wie oft denn noch?!
EMail bei Ergebnis - (keine) EMail bei keinem Ergebnis

Freitag. 🐟
Poergen
Poergen 05.04.2024 um 12:24:17 Uhr
Goto Top
Habe ich darüber versucht - habe ich nicht hinbekommen, das auf diesen Code zu übertragen. Sorry, deshalb schreibe ich ja hier.
12168552861
Lösung 12168552861 05.04.2024 aktualisiert um 12:34:34 Uhr
Goto Top
Zitat von @Poergen:

Habe ich darüber versucht - habe ich nicht hinbekommen, das auf diesen Code zu übertragen. Sorry, deshalb schreibe ich ja hier.

Den Unterschied in dem Beitrag von deinem und des Antwortenden kannst du aber schon lesen?! Du brauchst nur eine Variable erstellen die du auf "true" setzt wenn es mindestens eine Änderung gibt, und unten fragst du diese Variable ab. Auch Anfänger dürfen sich hier minimal anstrengen. Naja hat wohl bei dir offensichtlich keinen Zweck mehr ...🙄

function EmailOrder() {
  // variable ob Mail gesendet werden soll oder nicht (wird in der Schleife auf true geändert wenn es etwas zutreffendes gab)
  var sendMail = false;
  // Hier die Spreadsheet-ID, den Tabellennamen und die E-Mail-Adresse aktualisieren
  var spreadsheetId = "xxx";    
  var sheetName = "xxx";    
  var recipientEmail = "xxx";    

   // Spreadsheet und Sheet öffnen
  var spreadsheet = SpreadsheetApp.openById(spreadsheetId);
  var sheet = spreadsheet.getSheetByName(sheetName);

  // Hier den gewünschten Bereich aktualisieren
  var range = sheet.getDataRange();
  
  // Daten und Formatierung aus dem Bereich erhalten
  var values = range.getValues();
  var fontColors = range.getFontColors();

  // HTML-Nachricht zusammenstellen
  var emailSubject = "xxx";    
  var emailBody = "<ul>";    

  // Überprüfen und Daten hinzufügen, wenn die Schriftfarbe vorhanden ist
  for (var i = 0; i < values.length; i++) { 
    var cell1Color = fontColors[i][0]; 
    var cell2Color = fontColors[i][1];

    // Überprüfen, ob die Schriftfarbe in einer der beiden Zellen vorhanden ist
    if ((cell1Color !== null && cell1Color !== '#000000') || (cell2Color !== null && cell2Color !== '#000000')) {    
      emailBody += "<li>" + values[i][0] + " &nbsp;&nbsp;|&nbsp;&nbsp; " + values[i][1] + "</li>";    

      if (i % 2 === 1) { // Nach jedem zweiten Ergebnis
        emailBody += "";    
      }
      // es soll eine Mail gesendet werden
      sendMail = true;
    }
  }

  emailBody += "</ul>";     

// wenn mail gesendet werden soll
  if (sendMail){
      // E-Mail senden
      MailApp.sendEmail({
        to: recipientEmail,
        subject: emailSubject,
        htmlBody: emailBody
      });
   }
}

Bleibt dann ja nur noch Wie kann ich einen Beitrag als gelöst markieren?
DivideByZero
DivideByZero 05.04.2024 um 12:43:16 Uhr
Goto Top
Moin,

wenn Du dauerhaft an etwas herumprogrammierst, solltest Du tatsächlich Eigeninitiative entwickeln und etwas lernen. Und so abgegrenzte Fragen lassen sich heutzutage auch bestens über Youtube erlernen, z.b. hier: Boolean-Einführung Javascript.

Gruß

DivideByZero
Poergen
Poergen 05.04.2024 um 12:47:25 Uhr
Goto Top
Danke