Bonjour,

Voila je rencontre un petit problème avec mon code.

Ce que je fais

function onEdit() {
   var tableur = SpreadsheetApp.getActiveSpreadsheet();
   var feuille = tableur.getSheetByName("TEST");
  var maLigne = "A1";
  var maLignedeux = "C1";
  var maValeur = tableur.getRange(maLigne).getValues();
  var maValeurdeux = tableur.getRange(maLignedeux).getValues();
   var horodateur = new Date();
   var row = SpreadsheetApp.getActiveRange().getRowIndex();

    if(maValeur == "ENVOYER" && maValeurdeux == "R1"){
  feuille.getRange(row,2).setValue(horodateur);
  }
}

Ce que je veux

Modifier la date en fonction de plusieurs conditions, sur chaque ligne de mon tableau

Ce que j'obtiens

Il ne foncionne que sur la prmière ligne. Dès la second, il n'y a que le onEdit qui fonctionne (il ne prend plus en compte les conditions.

Merci de votre aide

Pat

3 réponses


As tu tester de debuger avec un console log pour comprendre le probleme ?

Bonjour,

"il ne prend plus en compte les conditions"

La syntaxe du IF semble bonne... du coup il y a 2 hypothèses :

  • soit le résultat de la comparaison "maValeur == 'ENVOYER' && maValeurdeux == 'R1'" vaut FALSE, alors le contenu de la condition n'est pas executé;
  • soit le résultat de la comparaison "maValeur == 'ENVOYER' && maValeurdeux == 'R1'" vaut TRUE, mais le code contenu dans les accolades n'est pas construit de manière à répondre à tes attentes;

Pour développer un peu la proposition de Beezkit, je mettrais un "console.log(maValeur == 'ENVOYER' && maValeurdeux == 'R1')" en amont du IF pour connaitre le résultat de la comparaison... puis un un "console.log('Condtion prise en compte')" à la première ligne après l'ouverture de l'accolade.

Pat Akim
Auteur

Merci de vos réponses ! (et bonnes fêtes !)
Un ami m'a proposé une solution, qui fonctionne !

function onEdit() {
var ss = SpreadsheetApp.getActive(),
sh = ss.getActiveSheet(),
range = sh.getActiveRange();

var rowIndex = range.getRowIndex();

var rowValues = sh.getRange(rowIndex,1,1,3).getValues();

if(rowValues[0][0] == "ENVOYER" && rowValues[0][2] == "R1"){
sh.getRange(rowIndex,2).setValue(new Date());
}

}