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();
}