0

Je suis nouveau sur Google script et j'espère que quelqu'un ici pourrait répondre à cela.Comment Google Spreadsheet peut-il utiliser "onedit" pour changer des cellules avec des instructions if?

je 7 colonnes et chacun a une liste déroulante afin que nous puissions sélectionner un état « Prêt », « approuvé », « attente », etc.

Il y aura bientôt plus de 500 lignes de statuts si idéalement Je voudrais avoir une fonction sur chaque colonne pour définir automatiquement le statut de la colonne après.

Exemple Cellules:

Ready|Waiting|Waiting|Waiting|Waiting|Waiting|Waiting 

Lorsque la première tâche est approuvée, les cellules devrait ressembler à ceci:

Approved|Ready|Waiting|Waiting|Waiting|Waiting|Waiting 

Dans l'exemple ci-dessus, devraient être cliqués « approuvé » la première cellule par l'utilisateur de la liste déroulante. Ensuite, le script devrait lire l'édition de cellule, et passer la cellule suivante de "Waiting" à "Ready"

Je regarde la route du script car j'ai besoin de faire cliqueter les cellules déroulantes. Si je mets une fonction sur la cellule elle-même, je perds les options déroulantes.

Toute aide avec ce serait vraiment génial!

Merci d'avance!

Répondre

0

Vous pouvez vérifier ce YouTube video et transcrit ce code peut être modifié en fonction de vos besoins:

function setDataValid_(range, sourceRange) { 
    var rule = SpreadsheetApp.newDataValidation().requireValueInRange(sourceRange, true).build(); 
    range.setDataValidation(rule); 
} 

function onEdit() { 
    var aSheet = SpreadsheetApp.getActiveSheet(); 
    var aCell = aSheet.getActiveCell(); 
    var aColumn = aCell.getColumn(); 

    if (aColumn == 1 && aSheet.getName() == 'Worksheet') { 
    var range = aSheet.getRange(aCell.getRow(), aColumn + 1); 
    var sourceRange = SpreadsheetApp.getActiveSpreadsheet().getRangeByName(aCell.getValue()); 
    setDataValid_(range, sourceRange) 
    } 
} 

Et pour un éclairage supplémentaire, vous pouvez aussi voir ce thread.