Je vous aiderai en vous proposant un plan de base, des conseils et des ressources, mais ne vous attendez pas à ce que je rédige l'ensemble du texte.
Étape 1 - Créer une option de menu personnalisée
Vous voudrez pouvoir accéder à votre script à partir de la feuille de calcul. Vous pouvez accomplir cela en créant une option de menu personnalisée. Voici une article de google sur les menus personnalisés .
Bien que google utilise le simple déclencheur onOpen
J'ai trouvé déclencheurs installables pour être plus fiable.
Étape 2 - Obtenir la contribution de l'utilisateur
Ce serait bien d'être invité à entrer l'identifiant de l'employé et que le script fasse son travail. Voici un exemple article de google sur les dialogues et les sidebars qui traite de la manière d'obtenir une entrée utilisateur pour un script.
Étape 3 - Lire et écrire des données à partir du tableur
Vous pouvez accéder aux données de spreadsheeet avec la fonction SpreadsheetApp
. Lorsque vous appelez votre script à partir d'un menu personnalisé, vous pouvez utiliser SpreadsheetApp.getActiveSpreadsheet
Cependant, si vous voulez tester votre code dans l'éditeur script, il n'y a pas de "feuille de calcul active". SpreadsheetApp.openById
à la place.
En ayant accès à la feuille de calcul, vous pouvez appeler :
spreadsheet.getSheetByName("name").getRange(1, 1, 2, 2).getValues();
spreadsheet.getSheetByName("name").getRange(1, 1, 2, 2).setValues([[1, 2], [3, 4]]);
Notez que getValues
et setValues
travailler avec des tableaux à deux dimensions
AVERTISSEMENT - Comme d'habitude, les E/S prennent beaucoup de temps de traitement, donc évitez d'appeler superflument getRange().XetValues
ce article de google sur les meilleures pratiques d'appscript est plus détaillée. Par ailleurs, si vous avez BEAUCOUP de feuilles de présence, vous pourriez envisager de les condenser en une seule.
Étape 4 - Obtenez les feuilles appropriées
Vous aurez besoin d'un moyen de distinguer les feuilles de la feuille de calcul des feuilles de présence :
function isAttendanceSheet(sheet) {
return /Magical regex/.test(sheet.getName);
}
var sheets = spreadsheet.getSheets().filter(isAttendanceSheet);
Trouvez l'expression magique qui vous convient, et cela les filtrera.
J'espère que cela vous aidera et bonne chance !