Soustraire des valeurs en fonction d'une plage nommée

Une question ce jour d'un ami devant gérer le stock d'équipement pour la dialyse de son père. Il souhaite le mettre à jour quotidiennement d'une façon rapide.

Jusqu'à présent, il modifiait manuellement chaque cellule (bleu, vert et orange) quotidiennement mais il voulait trouver un moyen de simplement appuyer sur un bouton pour mettre automatiquement à jour chaque cellule.

Processus expliqué:

(1) La plage des champs bleu diminue chaque cellule de 1 - il souhaitait un bouton qui diminuera de 1 chacun de ces champs.
(2) La plage des champs vert est soustraite pour chaque cellule de 2 chaque jour du lundi au samedi.
(3) Le dimanche uniquement, la plage verte et orange sont sont soustraite de 1 pour chaque cellule.

Voici en image animée sur ce que peut être une réponse au besoin :


Pour cela, nous avons un tableau avec trois plages nommées.


Et un script de quelques lignes : 

/** @OnlyCurrentDoc */
function Quotidiennement() {
  
  var PlageBleue =  SpreadsheetApp.getActiveSpreadsheet().getRangeByName('Bleu');
  var ValeursBleues = PlageBleue.getValues();
  var ValeursMisesAJour = ValeursBleues.map(function(e){return [e -1]});
  
  PlageBleue.setValues(ValeursMisesAJour);
}

function LunSam() {
  
  var PlageVerte =  SpreadsheetApp.getActiveSpreadsheet().getRangeByName('Vert');
  var ValeursVertes = PlageVerte.getValues();
  var ValeursMisesAJour = ValeursVertes.map(function(e){return [e -2]});
  
  PlageVerte.setValues(ValeursMisesAJour);
}


function Dimanche(){
  
  var PlageVerte =  SpreadsheetApp.getActiveSpreadsheet().getRangeByName('Vert');
  var ValeursVertes = PlageVerte.getValues();
  var ValeursMisesAJour = ValeursVertes.map(function(e){return [e -1]});
  
  PlageVerte.setValues(ValeursMisesAJour);
  
  var PlageOrange =  SpreadsheetApp.getActiveSpreadsheet().getRangeByName('Orange');
  var ValeursOranges = PlageOrange.getValues();
  var ValeursMisesAJour = ValeursOranges.map(function(e){return [e -1]});
  
  PlageOrange.setValues(ValeursMisesAJour);
}

Enfin, il ne reste plus qu'à assigner chaque bouton à chaque script.


Voilà, j'espère que ce cas d'usage vous donnera des idées pour vos propres activités, gestion de stock, listes diverses, etc ...