Je me bats toujours avec mon script Googlesheet, qui désormais fonctionne MAIS
1- il est vraiment très, très lent (plusieurs secondes pour décocher une croix ...)
2- parfois, il ne se déclenche pas du tout !
Je pense que le mieux serait de passer par un "select case" pour remplacer les boucles FOR (car dans mon exemple il n'y en aura que 2, mais en réalité j'en aurai plus de 10 par feuille) ... je l'avais fait dans mon fichier excel en VBA, mais là sur googlesheet je ne sais pas si ça existe ...
J'ai aussi essayer de passer par un var ligne = range.getRow (); pour éviter que la boucle ratisse toutes les lignes à chaque fois, mais je n'ai pas vu de gain de temps.
Donc, j'ai toujours besoin d'aide ...
Je copie le fichier modifié :
https://docs.google.com/spreadsheets/d/1nO4ed0UEc8LrspDGltqQ8wffpCWLisHHUGx2ZIMQiW4/edit#gid=0
J'espère trouver de l'aide
------------------------
function myFunction() {
};
function onEdit(e) {
var feuille = SpreadsheetApp.getActiveSheet();
var cours, joueurs, coach, motifannul
//var range = SpreadsheetApp.getActiveSheet().getActiveRange();
//var ligne = range.getRow();
for (var i=3;i<43;i++) {
for (var j=4;j<12;j++) {
cours = feuille.getRange(i,3);
coach = feuille.getRange(i,2);
motifannul = feuille.getRange(i,4);
joueurs = feuille.getRange(i,j+1);
if (!cours.getValue()) {
coach.setValue('REMPLIR');
}
if (cours.getValue()) {
motifannul.setValue('REMPLIR');
}
if (!cours.getValue() && joueurs.getValue()) {
joueurs.setValue('FALSE');
}
}
for (var j=16;j<24;j++) {
cours = feuille.getRange(i,15);
coach = feuille.getRange(i,14);
motifannul = feuille.getRange(i,16);
joueurs = feuille.getRange(i,j+1);
if (!cours.getValue()) {
coach.setValue('REMPLIR');
}
if (cours.getValue()) {
motifannul.setValue('REMPLIR');
}
if (!cours.getValue() && joueurs.getValue()) {
joueurs.setValue('FALSE');
}
}
}
}