Bonton sous condition

Bonjour,

J'aimerai créer un bouton qui ajouterai la valeur d'une liste déroulante dans une autre : pour ça, j'ai réussi à m'en sortir.

Sauf que j'aimerai que ce bouton ajoute la valeur de la liste déroulante ajoute cette valeur dans une cellule différente (chacune sur une page différente) en fonction qu'une case à cocher.

Je m'explique, je voudrais que si la case à cocher "1" est coché que la valeur s'ajoute dans une cellule prédéfini situé sur une page de mon document, mais que si à la place de la case à cocher "1" c'est la "2" qui est coché, qu'il l'ajoute à une cellule situé sur une seconde page. Et ainsi avec 3 case à coché.

Merci d'avance

Charles

https://docs.google.com/spreadsheets/d/1ihTZB9jStuje1d4Vt1mWM2JxlTMZ1YRnY1PtMGYWIxA/edit?usp=sharing

Bonjour,

Voici un script à assigner à ton bouton :

function ajoutListeToRange() {
  const ss = SpreadsheetApp.getActiveSpreadsheet();

  /* Nom des feuilles, à changer */
  const sheetBase = ss.getSheetByName('Base');
  const sheetR1 = ss.getSheetByName('Résultat 1');
  const sheetR2 = ss.getSheetByName('Résultat 2');
  const sheetR3 = ss.getSheetByName('Résultat 3');

  /* chiffres et plages associés, dans cet exemple 1 = Résultat 1 B3, 2 =  Résultat 2 B3,3=  Résultat 3 B3. */
  const listeRange = [[1, sheetR1.getRange('B3')], [2, sheetR2.getRange('B3')], [3, sheetR3.getRange('B3')]];

  /* adresse de la liste déroulante */
  let listeDeroulante = sheetBase.getRange('A2').getValue();

  /* adresse des cases à cocher */
  let caseCoche = sheetBase.getRange('E2:G2').getValues();

  /* ces lignes testent si plusieurs cases sont cochées alerte l'user et stoppe de script */
  const count = caseCoche[0].filter(valeur => valeur > 0).length;
  if (count > 1) {
    SpreadsheetApp.getUi().alert('Trop de cases sont cochées !');
    return;
  }

  /* ces lignes vérifié la valeur de la case cochée, trouve sa correspondance dans listeRange et met l'addition valeur de la case cochée + valeur liste déroulante dans la range correspondante.*/
  caseCoche[0].forEach(function(valeur) {
    for (let i = 0; i < listeRange.length; i++) {
      if (listeRange[i][0] === valeur) {
        let plageCorrespondante = listeRange[i][1];
        plageCorrespondante.setValue(listeDeroulante+valeur)
        break; // Sortir de la boucle si la correspondance est trouvée
        }
      }
    }
  );
}

Merci bcp

Rechercher des sujets similaires à "bonton condition"