Cellule contenue dans une plage avec Apps Script

Pour vérifier si une cellule se trouve dans une plage de cellules, utilisez la fonction inRange mise à disposition sur cette page.

La fonction retourne true si la cellule se trouve dans la plage de cellules spécifiée ou false dans le cas contraire.

Utilisation :

inRange(cellule, plage_de_cellules)

Exemple d'utilisation

Copiez-collez tout d'abord la fonction inRange dans l'éditeur de scripts de votre document Google Sheets :

function inRange(cell, range) {
  
  // Source : https://www.sheets-pratique.com/fr/codes/fonction-in-range

  const cellRow = cell.getRow();
  const rangeRow1 = range.getRow();
  const rangeRow2 = range.getLastRow();

  if (cellRow > rangeRow2 || cellRow < rangeRow1) {
    return false;
  }

  const cellCol = cell.getColumn();
  const rangeCol1 = range.getColumn();
  const rangeCol2 = range.getLastColumn();

  if (cellCol > rangeCol2 || cellCol < rangeCol1) {
    return false;
  }

  return true;
}

Vous pourrez ensuite utiliser cette fonction, par exemple pour vérifier si la cellule B1 est dans la plage A1:C3 :

function exemple() {

  const f = SpreadsheetApp.getActiveSheet();
  const cellule = f.getRange('B1');
  const plage = f.getRange('A1:C3');

  const resultat = inRange(cellule, plage);

  console.log(resultat); // Renvoie : true
}

Fonction raccourcie

Pour une meilleure compréhension du code du précédent exemple, la fonction inRange n'a pas été raccourcie.

En voici une version équivalente bien plus courte :

function inRange(cell, range) {
  // Source : https://www.sheets-pratique.com/fr/codes/fonction-in-range
  const r = cell.getRow(), c = cell.getColumn();
  return r <= range.getLastRow() && r >= range.getRow() && c <= range.getLastColumn() && c >= range.getColumn();
}