Page 1 sur 1

déclencher le script (formule personalisée) suite à l'ajout de données

Publié : 18 févr. 2023 17:13
par Piga25
Bonjour,

Je n’ai pas trouvé comment faire exécuter plusieurs scripts lorsque la valeur de la cellule change ou par d’autres moyens ?
C’est à dire au fur et à mesure que j’entre des données en fin de ligne, j’aimerai que les fonctions personnalisées qui sont en début de ligne recalcul automatiquement les valeurs.
Exactement de la même manière que cette fonction : =NBVAL() . Lors d’ajout de données dans sa plage de calcule le résultat se met automatiquement à jour. actuellement j’essai cela :

Code : Tout sélectionner

function maFonction() {
var maValeur = SpreadsheetApp.getActiveSheet().getRange("H1").getValue();
if(maValeur == "réinitialiser"){
// ici mettre la fonction que vous souhaitez
sousterre();
surface();
repos();
disponible();
}
}
les autres codes à déclencher sont tous de cette façon :

Code : Tout sélectionner

function sousterre(){
// définir les variables
var ss = SpreadsheetApp.getActiveSheet()
var n= ss.getLastColumn();
for(var C1=n;C1>=1;C1--) { // boucle de n à 1
if(ss.getRange(ss.getCurrentCell().getRow(),C1).getValue() == "ST"){
// on a trouvé la cellule qui contient ST
for(var C2=C1;C2>=1;C2--){
if(ss.getRange(ss.getCurrentCell().getRow(),C2).getValue() != "ST"){
return C1-C2;
}
}
}
}
}
Lien vers le fichier exemple :https://docs.google.com/spreadsheets/d/ ... edit#gid=0

Merci

Re: déclencher le script (formule personalisée) suite à l'ajout de données

Publié : 20 févr. 2023 14:39
par NC_Quentin
Bonjour !

Il existe ce qu’on appelle des déclencheurs simples dans Apps Script, qui s’activent au déclenchement de certains événements courants. Du coup, il suffit d’écrire :

Code : Tout sélectionner

function onEdit(e){
    sousterre();
    surface();
    repos();
    disponible();
}

Dès que quelqu’un modifiera la feuille, cela déclenchera l’exécution de onEdit (avec comme argument e ce qui a été modifié, ce qui peut être pratique) et donc l’exécution des différentes fonctions.

À noter que si ces fonctions font des calculs directement sur la feuille, il est aussi possible de les écrire de sorte qu’elles soient utilisables directement sur Sheets (comme l’explique assez bien la documentation officielle sur ce sujet). Cela évite de reposer trop sur onEdit, qui peut parfois être limitant vu qu’il s’active à chaque modification sur le tableur.