déclencher le script (formule personalisée) suite à l'ajout de données Le sujet est résolu

Avatar de l’utilisateur
Piga25
Messages : 14
Inscription : 03 févr. 2023 15:36
A remercié : 4 fois
Remercié : 2 fois

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

Message 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
Avatar de l’utilisateur
NC_Quentin

Coach Numericoach
Invétéré
Messages : 36
Inscription : 10 oct. 2022 09:06
A remercié : 1 fois
Remercié : 12 fois

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

Message 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.
Répondre

Rejoignez la discussion 💬

Vous devez être enregistré pour participer à la discussion et échanger avec les différents membres

Inscrivez-vous dès aujourd'hui

Vous n'êtes pas encore membre ? Rejoignez-nous gratuitement dès aujourd'hui et contribuer en postant votre réponse ou question sur tous les forums disponibles

Inscription

Connectez-vous