Partage de tableau et masquer APPSCRIPT

Bonjour,

Je souhaite partage un tableau à un collaborateur mais je ne souhaite pas lui partager le codage que j'ai fait sur APPSCRIPT.
Mon idée première était de créer un second tableau qui reprend les informations du premier que je garde en privée, c'est fait mais il me manque une seule option que je ne sais pas déporter.

Mon tableau transforme les données que l'on renseigne en un fichier JSON bien structuré, et pour lancer la création du JSON je dois cliquer sur un bouton qui lance un script. Comment puis-je lancer un script sur mon tableau privé, depuis le tableau partagé?

J'espère avoir été clair et merci par avance pour toute l'aide que vous m'apporterez! :)

J'ai fait une première avancé mais ça ne marche toujours pas par contre je suis prêt du but!

function onEdit(e) {
  var sheet = e.source.getActiveSheet();
  var range = e.range;

  if (sheet.getName() === "Feuille a surveiller") {
    if (range.getA1Notation() === "F2") {
      convertirFeuilleEnJSON();
    }
  }
}

Ca fonctionne si je modifie la cellule F2 depuis mon document mais si je le fais depuis la feuille déportée alors le déclencheur ne fonctionne pas :(

Bonjour,

Je pense que passer par la création d'une bibliothèque serait plus simple pour utiliser du script sans le laisser lisible par vos utilisateurs.
Si toutefois vous souhaitez continuer sur le chemin du JSON, voici un script que j'ai de coté pour exporter/importer du JSON :

function exportToJson() {
  var sheet = SpreadsheetApp.openByUrl('https://docs.google.com/spreadsheets/d/1tAZdLixNPSh_OesX2yAEi8jTYpa-ikFZJxEzszR8/').getSheetByName('RECEPTION'); // fichier & feuille origine
  var range = sheet.getDataRange();
  var values = range.getValues();
  var jsonData = [];
  for (i=0;i<values.length;i++) {
    var row = values[i];
    var rowData = {};
    for (j=0;j<row.length;j++) {
      var header = values[1][j]; // entête de la feuille
      rowData[header] = row[j];}
    jsonData.push(rowData);}
  var jsonString = JSON.stringify(jsonData, null, 2); // édition du JSON
  var folder = DriveApp.getFolderById('129U1z8WatRTTDDi2OLBRXPssdEEPb8mTNv'); // dossier cible
  folder.createFile('BDD_RECEP_EXPE_2023.json', jsonString, MimeType.PLAIN_TEXT); // SAUVEGARDE
}

function importFromJson() {
  var fileId = '1WYCnkwCYA-YnsdsfXwer-33dffdsdiNkf_k4Z'; // ID du fichier (clic droit > partager puis copier l'ID dans l'URL)
  var file = DriveApp.getFileById(fileId);
  var jsonString = file.getBlob().getDataAsString();
  var jsonData = JSON.parse(jsonString); // conversion JSON > STRING
  var sheet = SpreadsheetApp.getActiveSpreadsheet().getActiveSheet(); // dans ce cas active sheet mais sheet peut être définie
  var dataRows = [];
  sheet.clear(); // au cas où
  var headers = Object.keys(jsonData[0]); // en-tête du fichier JSON
  sheet.appendRow(headers); // on ajoutes les en-têtes à la feuille
  for (var i = 0; i < jsonData.length; i++) { // stockage des data dans une variable
    var row = [];
      for (var j = 0; j < headers.length; j++) {
        row.push(jsonData[i][headers[j]]);}
    dataRows.push(row);
}
  sheet.getRange(2, 1, dataRows.length, dataRows[0].length).setValues(dataRows); // insertion de la variable data dans la feuille
}
Rechercher des sujets similaires à "partage tableau masquer appscript"