web-dev-qa-db-fra.com

Autorisation Google Script setValue

J'essaie de définir une valeur pour une cellule dans une feuille de calcul Google Documents.

function exampleFunction() {
  var ss = SpreadsheetApp.getActiveSpreadsheet();
  var sheet = ss.getSheets()[0];
  var range1 = sheet.getRange("A1");
  var value1 = range1.getValue();
  value1+=1;
  range1.setValue(2);
  return value1;
}

Si j'essaie d'affecter une cellule avec cette fonction, cette erreur apparaît:

Vous ne disposez pas de l'autorisation requise pour définir la valeur. (ligne 10, fichier "jjj")

Savez-vous comment je pourrais rendre cela possible? Je veux en fait que la cellule affectée prenne la valeur de la cellule A1 et augmente la valeur de A1 +1.

Je vous remercie

17
zyrup

de la documentation:

Les fonctions personnalisées renvoient des valeurs, mais elles ne peuvent pas définir de valeurs en dehors des cellules dans lesquelles elles se trouvent. Dans la plupart des cas, une fonction personnalisée dans la cellule A1 ne peut pas modifier la cellule A5. Toutefois, si une fonction personnalisée renvoie un double tableau, les résultats dépassent la cellule contenant la fonction et remplissent les cellules ci-dessous et à droite de la cellule contenant la fonction personnalisée. Vous pouvez tester cela avec une fonction personnalisée contenant return [[1,2], [3,4]];.

reference: Fonctions personnalisées dans les feuilles de calcul

27
Serge insas

Il semble que vous utilisez la fonction ci-dessus en tant que fonction personnalisée, en d'autres termes, elle est appelée par formule de cellule dans l'interface utilisateur de Google Sheets, de la manière suivante:

=exampleFunction()

Les fonctions personnalisées dans Google Sheets ont des limitations comme elles ne peuvent pas être utilisées pour appeler les services de script Google Apps qui nécessitent des autorisations. La solution consiste à utiliser un autre moyen pour appeler la fonction:

Ils peuvent également être appelés depuis boîtes de dialogue et barres latérales , applications Web Google Apps Script et en utilisant API d'exécution Google Apps Script

5
Rubén