Bonsoir à tous,
Je me permets de vous demander de l'aide sur un tableau Google Sheets que j'ai tenté de réaliser. Après avoir fouillé sur le Web à multiples reprises sur la méthodologie que je souhaitais adopter, j'ai fini par abandonner et vous solliciter.
J'essaie d'être concis et clair.
Voici le projet :
Un magasin spécialiste d'équipement et matériel de tennis avec qui je travaille souhaite mettre en place un suivi en ce qui concerne le prêt de raquettes.
J'ai fait une ébauche de ce que je pensais être le mieux pour eux sur Google Sheets (accès partout, synchronisation, collaboration etc.).
Voici l'accès au fichier : https://docs.google.com/spreadsheets/d/1bXH67AkSF4UNCfAYu1ClIpiHqKyLyMujyr42d0kzNx0/edit?usp=sharing
Vous verrez, il y a 4 feuilles : clients / raquettes / prêt / archive.
Les "clients" seront ajoutés en allant qu'un prêt est effectué. J'ai fait correspondre chaque entrée de nouveau client directement dans la feuille "prêt" pour éviter de ressaisir les coordonnées.
Dans la feuille "raquettes", c'est le stock de raquettes mises à disposition pour l'essai. J'ai fait en sorte d'indiquer le statut de chacune ("Disponible" ou "En prêt") selon s'ils sont déjà entre les mains de clients ou non.
Voici ma requête pour vous :
Je souhaite qu'à chaque fois qu'un prêt se termine, le responsable magasin puisse activer la case à cocher en colonne G de la feuille "prêt". Si vous le faites, vous verrez que la ligne se met en vert et que les raquettes prêtées (1, 2, 3, 4 ou 5) sont effacées quelques secondes après. C'est un bout de script que j'ai mis dans une macro après l'avoir trouvé dans mes recherches Web mais cela a ses limites malheureusement en ce qui me concerne.
Ci-dessous la macro actuelle :
function deleteRowContents (col){ // col is the index of the column to check for checkbox being true
var col = 7; // If the column "F" is 6, please set 6.
var sh = SpreadsheetApp.getActiveSpreadsheet().getSheetByName("prêt"); // Modified
var data = sh.getDataRange().getValues();
// Below script was modified.
var deleteRanges = data.reduce(function(ar, e, i) {
if (e[col - 1] === true) { // Modified
return ar.concat(["G" + (i + 1) + ":L" + (i + 1)]);
}
return ar;
}, []);
if (deleteRanges.length > 0) { // or if (deleteRanges.length) { // Added
sh.getRangeList(deleteRanges).clearContent();
}
}
Dans l'idée, je voudrais que la ligne (où on a coché la case) reste verte et que celle-ci soit "prise en photo" et copier/coller dans la feuille "archive" avant que les raquettes soient effacées et redeviennent "Disponible" pour de nouveaux essais. Dans le but d'avoir une trace historique du client avec les raquettes déjà testées.
Enfin, dans la feuille "prêt", pour les colonnes H à L (raquette 1, raquette 2...), dès lors que je choisis une raquette dans la liste, cela marque le coin de la cellule en rouge avec cette mention : "Non valide : la valeur d'entrée doit être comprise dans la plage spécifiée", auriez-vous une idée de l'erreur ?
Par avance, je vous remercie de votre aide si précieuse.
Je reste à disposition si besoin de plus d'informations !