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-Key: 82479249596

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

Printed on: May 18, 2024 at 03:05 o'clock

Mitglied: 12168552861
12168552861 Apr 05, 2024 updated at 10:23:08 (UTC)
Goto Top
Wurde dir hier doch schon x mal mal gezeigt, wie oft denn noch?!
EMail bei Ergebnis - (keine) EMail bei keinem Ergebnis

Freitag. ­čÉč
Member: Poergen
Poergen Apr 05, 2024 at 10:24:17 (UTC)
Goto Top
Habe ich darüber versucht - habe ich nicht hinbekommen, das auf diesen Code zu übertragen. Sorry, deshalb schreibe ich ja hier.
Mitglied: 12168552861
Solution 12168552861 Apr 05, 2024 updated at 10:34:34 (UTC)
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 How can I mark a post as solved?
Member: DivideByZero
DivideByZero Apr 05, 2024 at 10:43:16 (UTC)
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
Member: Poergen
Poergen Apr 05, 2024 at 10:47:25 (UTC)
Goto Top
Danke