Dans une feuille de calcul Google appelée Présence, il y a une feuille appelée Modèle . L'utilisateur duplique cette feuille, renomme la feuille avec la date actuelle et utilise cette feuille pour marquer la présence des étudiants. La feuille de modèle contient des cellules protégées et la présence est marquée en entrant le numéro d'identification de l'élève dans l'espace donné (cellules non protégées). J'utilise le script suivant pour dupliquer plusieurs feuilles et les renommer tous les jours:
function createDailyAttendance() {
var ss = SpreadsheetApp.getActiveSpreadsheet();
var refss = ss.getSheetByName("DataPointers");
// Get the range Row and Column information.
var dataRangeRow = refss.getRange("K2").getValue();
//var dataRangeCol = ss.getRangeByName(ColName).getValue();
// Get the range of cells that store Duplicate sheet name.
var AttendanceDataRange = refss.getRange(dataRangeRow);
var AttendanceObjects = AttendanceDataRange.getValues();
var template = ss.getSheetByName('Template');
for (var i=0; i < AttendanceObjects.length; i++) {
// Put the sheet you want to create in a variable
var sheet = ss.getSheetByName(AttendanceObjects[i]);
// Check if the sheet you want to create already exists. If so,
// log this and loop back. If not, create the new sheet.
if (sheet) {
Logger.log("Sheet " + AttendanceObjects[i] + "already exists");
} else {
template.copyTo(ss).setName(AttendanceObjects[i]);
}
}
return;
}
Ce script m'aide à créer plusieurs copies de feuilles à partir du modèle, mais les copies en double ne conservent pas les autorisations Cellule / Plage. Existe-t-il un moyen d'ajouter une fonction de boucle qui extrait l'autorisation du modèle et l'applique chaque fois que la boucle template.copyTo
crée une feuille?