J'ai un tableur avec deux feuilles appelées Robin
et Lucy
. J'ai créé/trouvé/altéré un script pour trier les données de la feuille chaque fois que j'ajoute des données à la colonne A:
function onEdit(event){
var sheet = event.source.getActiveSheet();
var editedCell = sheet.getActiveCell();
var columnToSortBy = 1;
var tableRange = "a2:I30";
if(editedCell.getColumn() == columnToSortBy){
var range = sheet.getRange(tableRange);
range.sort( { column : columnToSortBy } );
}
}
Ce script fonctionne bien mais je veux seulement qu'il soit appliqué sur la première feuille, Robin
. Les données de la deuxième feuille, Lucy
, ne sont pas les mêmes et je vais donc créer un autre script pour une plage différente pour celle-ci, une fois que je me suis concentré sur ce problème.
Je pense que j'ai besoin d'utiliser la getSheetByName("Robin")
mais je n'arrive pas à le faire fonctionner.
Il y a deux façons de le faire. Tout d'abord, vous devez déclarer le tableur:
var ss = SpreadsheetApp.getActiveSpreadsheet();
Deuxièmement, déclarez la première feuille comme ceci:
var sh0 = ss.getSheets()[0];
ou comme ceci:
var sh0 = ss.getSheetByName("Robin");
Puis définissez la cellule active et récupérez l'index de la colonne:
var editedCell = sh0.getActiveRange().getColumnIndex();
Et faire la logique pour le genre:
var columnToSortBy = 1;
var tableRange = "a2:I30";
if(editedCell == columnToSortBy){
var range = sheet.getRange(tableRange);
range.sort( { column : columnToSortBy } );
}
Code complet, un peu raccourci:
function onEdit(){
var sh0 = SpreadsheetApp.getActiveSpreadsheet().getSheets()[0];
var editedCell = sh0.getActiveRange().getColumnIndex();
if(editedCell == 1) {
var range = sh0.getRange("A2:I30");
range.sort({column: 1});
}
}
Obtenez la feuille associée (feuille de calcul) et indiquez sur quel onglet (feuille) vous souhaitez mettre le focus:
var theSheet = SpreadsheetApp.getActiveSpreadsheet().getSheetByName("Robin");
// do the thing
var theSheet = SpreadsheetApp.getActiveSpreadsheet().getSheetByName("Lucy");
// do the other thing
Référence: https://developers.google.com/apps-script/reference/spreadsheet/spreadsheet#getSheetByName (String)