Sheet11 en éxécution console log

Re-bonjour,

Quand j'essaie d'éxécuter le cours des boucles en exercice

https://sheets-pratique.com/fr/apps-script/boucles

avec mon cas

Feuille admin :

image
    var fichSondage = SpreadsheetApp.getActive();
    var feuilAdmin = fichSondage.getSheetByName("admin");
     // dernieres lignes
     var dernAdmin = feuilAdmin.getLastRow();    
    //message pas de mesure validée 
    for (let i = 2;i <= dernAdmin;i++)
     {
        if (feuilAdmin.getRange(i,7).getValue() !== "") 
        {
        cpt = cpt + 1
        console.log(cpt);
        }
      }
image

Je voudrais avoir 0 pour cpt, mais, il ne considère pas la colonne G vide si la liste déroulante n'est pas remplit.

Merci

Bonjour,

Si le screenshot représente l'ensemble de vos données, il semble que GetLastRow vous renvoie la ligne 2 puisque vous n'avez rien après. Je vous conseille l'éxécution pas à pas pour voir à quelle valeur est affectée la variable dernAdmin.

https://developers.google.com/apps-script/reference/spreadsheet/sheet#getlastrow

Donc il est possible que puisque vous initialisez i à 2, vous ne rentriez pas dans la boucle (ou alors vous la parcourez seulement une fois).

Si vous définissez cpt ailleurs sur un nom de feuille, cela explique le résultat obtenu. Puisqu'il s'agit d'une string (texte) et non pas d'un nombre, faire "+1" veut dire "ajouter le caractère "1" à la fin. D'ou le "sheet1", "sheet11", et "sheet111" si vous bouclez 3 fois.

Est-ce bien le fonctionnement recherché ?

Bonjour Saboh,

merci pour ta réponse.

function Macrosanstitre2() {
var ss = SpreadsheetApp.getActiveSpreadsheet();
var sheet = ss.getSheets("admin");
// This logs the value in the very last cell of this sheet
var lastRow = sheet.getLastRow();
var lastColumn = sheet.getLastColumn();
var lastCell = sheet.getRange(lastRow, lastColumn);
console.log(lastCell.getValue());
};

J'ai mis le nom de ma page à la place du numéro de feuille qui donnait rien, et console.log à la place de logger

mais c'est pareil, çà n'affiche rien

image

Je mets à 2 pour ne pas commencer à la ligne du titre qui n'est pas vide.

Moi je voudrais que çà ajoute 1 si la colonne validation n'est pas vide.

Merci

Vous devriez essayer

Console.log(lastCell.getA1Notation())

pour bien comprendre où se situe votre "last cell". Et par ailleurs définissez cpt ainsi avant la boucle :

 var  cpt = 0;

Je mettais pas var avant cpt = 0
Merci bcp

En effet, votre variable était de type indéterminé (c'est un peu le problème en JavaScript malheureusement le language est comme ca), et donc le programme supposait que c'était une String. Donc l'opération "+", au lieu d'additionner comme elle le fait pour les nombres, ajoutait à la fin de la String. Un peu comme quand vous entrez "&" dans les formules Excel.

Rechercher des sujets similaires à "sheet11 execution console log"