Partage
  • Partager sur Facebook
  • Partager sur Twitter

Utilisation de "Switch / Case" sous Google apps

Google Apps Script (Sheet)

    2 mai 2019 à 16:19:17

    Bonjour à tous, 

    Je me remets un peu à la programmation (gentille) afin d'automatiser quelques actions que je faisais manuellement sous Google Sheet. 

    Je n'ai jamais codé en JavaScript, et j'ai quelques petits problèmes entre ce qui est dit sur JS et comment c'est implémenté dans GAS. 

    En l'occurrence, et c'est peut-être un tout petit problème, voici un bout de mon code : 

      var sMaintenance = SpreadsheetApp.getActiveSpreadsheet().getSheetByName("MAINTENANCE"); 

      var nb_relance = 0

      for(var j = 5;j < 200 ; j++)  //Boucle de check de nouveaux plans d'action entre 1 et 200e ligne

     {

       var Retard_Action = sMaintenance. getSheetValues(j,19,1,1)

       if (Retard_Action > 0)

       {

     var Nom_Technicien = sMaintenance.getSheetValues (j,10,1,1);

         switch(Nom_Technicien)

             {

               case "TOTO":

                 var message_TOTO = message_TOTO + "L''action n°"+ sMaintenance. getSheetValues(j,2,1,1) + "/n";

                 break;

               case "TITI": 

                 var message_TITI = message_TITI + "L''action n°"+ sMaintenance. getSheetValues(j,2,1,1) + "/n";

                 break;

    }

    Le compiler ne rentre jamais dans la boucle switch : dans le tableau de débugage j'ai bien la valeur TOTO par exemple, mais il ne rentre pas dans la boucle et ne modifie pas ma chaîne de caractères. 

    J'ai essayé aussi via un "Default" dans la boucle switch d'afficher la valeur de "nom_Technicien" et j'affiche bien TOTO donc ma boucle a l'air bien codée et le problème doit venir de mes "case". 

    Il doit y avoir une subtilité que je ne comprends pas : vous pouvez m'aider ? Peut-être un cast du GetValues en string ? je n'arrive pas à trouver d'information de ce genre. 

    Merci d'avance. 

    • Partager sur Facebook
    • Partager sur Twitter
      3 mai 2019 à 21:36:11

      Bonjour,

      Je ne connais pas du tout Google Apps, mais je pense à 2 pistes relativement classiques dans ce cas:

      1- var Nom_Technicien = sMaintenance.getSheetValues (j,10,1,1).toString(); -> Peut-être que le switch compare le type également

      2-  switch(Nom_Technicien.trim()) OU peut-être faut-il écrire "Nom_Technicien = Nom_Technicien.trim();" en amont du switch -> Je ne suis pas sûr de l'écriture

      Pour le 2ème point tu peux également tenter en faisant:
      Browser.msgBox('"' + Nom_Technicien + '"'); -> histoire de contrôler s'il n'y a pas d'espace dans la valeur retournée.

      • Partager sur Facebook
      • Partager sur Twitter
        6 mai 2019 à 16:24:40

        Merci : c'était juste ça : il fallait caster le getsheetvalues !

        Maintenance ça fonctionne : parfait. 

        • Partager sur Facebook
        • Partager sur Twitter

        Utilisation de "Switch / Case" sous Google apps

        × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
        × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
        • Editeur
        • Markdown