0

I am working on a Google Form notification script to send email based on text in the google sheet.

When I am using if condition my script its working but when I want to use (switch and case) instead its not working as expected.

Thanks and Regards, Christian

Here is my Google App test script:

function sendNotification() {

  var ss = SpreadsheetApp.getActiveSpreadsheet();
  var sheet = ss.getActiveSheet();
  var valColonneM = sheet.getRange("M1:M").getValues();
  var lignesColonneM = valColonneM.filter(String).length;
  var range = sheet.getRange(lignesColonneM, 13);
  var applicateur = range.getValues();

  var titre = "Titre ";
  var texte = "Bonjour, \nTexte";

switch (applicateur) {
  case "App1":
    var email = "email1@gmail.com";
    break
  case "App2":
    var email = "email2@gmail.com";
    break
  default:
    var email = "email3@gmail.com";
    break
  }

  MailApp.sendEmail (email,replyTo,titre,texte);
}
Rubén
  • 34,714
  • 9
  • 70
  • 166
Christian
  • 1
  • 2

2 Answers2

1

Replace

var applicateur = range.getValues();

by

var applicateur = range.getValue();

The above because getValues() returns a multidimensional Array ([[value]]) rather than a value

Related

Rubén
  • 34,714
  • 9
  • 70
  • 166
1

You may actually find that you nolonger need the filter function or the map function if you specify your range as I did.

function sendNotification() {
  var ss=SpreadsheetApp.getActive();
  var sheet=ss.getActiveSheet();
  var lignesColonneM=sheet.getRange(1,13,sheet.getLastRow()).getValues().map(function(r){return r[0];}).filter(String).length;
  var range=sheet.getRange(lignesColonneM, 13);
  var applicateur=range.getValue();
  var titre="Titre ";
  var texte="Bonjour, \nTexte";  
  switch (applicateur) {
    case "App1":
      var email="email1@gmail.com";
      break
      case "App2":
      var email="email2@gmail.com";
      break
      default:
      var email="email3@gmail.com";
      break
  }  
  MailApp.sendEmail (email,replyTo,titre,texte);
}
Cooper
  • 59,616
  • 6
  • 23
  • 54