Rendre le menu et ou certain fonction du menu inaccessible aux éditeurs

Comment rendre le "menu" créer visible

function onOpen() {
  var spreadsheet = SpreadsheetApp.getActiveSpreadsheet().getActiveSheet();
  var date = Utilities.formatDate(new Date(), "GMT", "dd/MM/yyyy"); // recherche la date
  spreadsheet.getRange("A1").setValue(date); // affiche en "A1" la date du jour 

  const ui = SpreadsheetApp.getUi(); // crée le menu admin uniquement
  ui.createMenu('⇩ PARAGOLF AFGOLF ⇩')

    .addSubMenu(ui.createMenu('Admin')
      .addItem('👉 Afficher tous les événements 👈', 'Rn')
      .addItem('👉 Création d une nouvelle saison ⚠️', 'Ns')
      .addItem('👉 Effacer les présences de cette saison ⚠️', 'Es')
    //  .addItem('👉 Rechercher une date et les présences 🏌', 'xx')   
    //  .addItem('👉 Rechercher un joueur et ses présences 🏌', 'xx')      
      .addItem('👉 Protection de la  feuille ⚠️', 'Ps'))

uniquement à ceux qui sont dans les droit de modification de plage et le rendre inaccessible à tous les autres utilisateur?

De plus il me semble qu'un éditeur à aussi accès aux "Extension et donc aux macro" pas bien car s'il ne peu exécuter il peu les modifier.

Qui a une solution à ce problème, merci d'avance.

https://docs.google.com/spreadsheets/d/1StuNNzfJ7b_uqTYk3uJEQnMhkHj9rjWJ68Qrbg7-TCY/edit#gid=1853596...

mbell

GSheets est un outil collaboratif avant tout !

Il est doté d'une fonction de protection double (soit protection de cellules, soit protection de feuilles sauf certaines cellules), mais je ne connais pas en effet la possibilité de restreindre l'accès à l'éditeur de script (idem pour excel du reste ! même avec un mot de passe facile à déjouer)

Pour moi, la vraie solution est de distinguer les données dans 2 fichiers séparés (ou plus s'il le faut) sachant que l'apport de GSheets est que les données sont partagées sur serveur et qu'il est très facile d'importer des données (sans abuser).

Re:

Donc si j'ai bien compris il reste impossible de garder le fichier protégé car les scripts restent accessible à une personne malveillante.

Même si les feuilles sont bien protégées, car seulement quelques cellules reste accessible aux éditeurs, celui qui supprime le contenu dans "Apps Scripts" peut rendre la feuille inertes car toutes les macros seront supprimées, d'où avoir une réplique du fichier que l'on ne partage pas afin de faire le cas échéant un copier coller de tous ce qu'il y a dans " Apps Scripts" pour retrouver l'aspect initiale du fichier.

C'est bien ça Steelson, si oui un grand merci pour ton aide ces derniers jours.

mbell

les cellules protégées resteront protégées, mais je crains en effet qu'il puisse intervenir dans les scripts

il faut travailler avec 2 fichiers séparés

Alors là je ne te suis pas, sauf si le deuxième ne sert que de sauvegarde au cas où.

Si non qu'a besoin ce deuxième fichier et donc je suppose que chaque cellule serait du type " =https://docs.google.com/spreadsheets/d/1StuNNzfJ7b_uqTYk3uJEQnMhkHj9rjWJ68Qrbg7-TCY/edit#gid=1853596... p90 " ou du genre?

non, le but n'est pas de faire une sauvegarde, le but est d'avoir un fichier maître qui va rassembler les infos d'autres fichiers sur lesquels les personnes pourront mettre à jour leur présence par exemple.

Ha mais ça m'intéresse,

et quel est la difficulté pour mettre ce type de fichier en place.

Tu as un exemple à me montrer ainsi je pourrais voir comment me débrouiller.

Merci Steelson

mbell

Donc si j'ai bien compris il reste impossible de garder le fichier protégé car les scripts restent accessible à une personne malveillante.

Une solution serait de

  • créer le script dans une autre feuille,
  • et remplacer les SpreadsheetApp.getActiveSpreadsheet() par SpreadsheetApp.openById("spreadsheet-id")

Les fonctions Dx seraient lancées à partir de la deuxième feuille.

Par contre, certains automatismes ne fonctionneraient plus, comme les onEdit, il faudrait les remplacer ou réactiver à chaque fois la Dx.

Bonjour Steelson,

je vais essayer de me lancer donc vers cette dernière solution.

merci pour tes conseils avisé.

mbell

Rechercher des sujets similaires à "rendre menu certain fonction inaccessible editeurs"