Assigner une macro à une image via une macro

Bonjour

Savez vous si il est possible d'assigner un Script à une image via un Script ?

En gros j'ai un script qui me permet d'ajouter des images/boutons selon mon besoin et chaque bouton ajouter doit me permettre d'exécuter un script.

L'ajout d'une image, je sais faire, mais lui assigner un script de manière automatique ....

Fonction que j'utilise pour l'ajout d'une image :

function insertCellImage(range, imageUrl, altTitle = "", altDescription = "") {

 let image = SpreadsheetApp
                 .newCellImage()
                 .setSourceUrl(imageUrl)
                 .setAltTextTitle(altTitle)
                 .setAltTextDescription(altDescription)
                 .build();
  range.setValue(image);

}

Dommage qu'il n'existe pas un champ ".setAssignScript" mais bon

J'ai regarder du coté de lien HyperText mais je n'ai pas trouvé comment lancer un Script via cette fonction. Du moins je ne sais pas comment trouver l'URL du Script.

Avez vous des idées ?

Une méthode qui fonctionne ?

Autre ?

Bonjour,

Dommage qu'il n'existe pas un champ ".setAssignScript" mais bon

si, mais il faut prendre le bon type d'image, pas une image dans mais une image sur !!

image

Voici la différence (avec un script nommé monScript), pas sûr qu'elle soit réellement bien positionnée !

function insertImageOnCellWithScript() {
  let sheet = SpreadsheetApp.getActiveSpreadsheet().getActiveSheet()
  let response = UrlFetchApp.fetch('https://developers.google.com/adwords/scripts/images/reports.png');
  let binaryData = response.getContent();
  let range = sheet.getRange('D3')
  let blob = Utilities.newBlob(binaryData, 'image/png', 'MyImageName');
  let image = sheet.insertImage(blob, range.getRow(), range.getColumn());
  image.assignScript('monScript');
}

function insertImageInCell() {
  let range = SpreadsheetApp.getActiveSpreadsheet().getActiveSheet().getRange('D9')
  let imageUrl = 'https://developers.google.com/adwords/scripts/images/reports.png'
  let image = SpreadsheetApp
    .newCellImage()
    .setSourceUrl(imageUrl)
    .setAltTextTitle('test')
    .setAltTextDescription('test insertion image')
    .build();
  range.setValue(image);
}

Génial

Je test ca de suite merciiiiiiiiiiiiiiiiiiii

J'ai un pb d'autorisation

10 juin 2022, 12:05:42ErreurException: Vous n'êtes pas autorisé à appeler UrlFetchApp.fetch. Autorisations requises : https:.....script.external_request

Dans le fichier Appsscript.json, j'ai ajouté :

"oauthScopes": [ "https:....script.external_request" ]

mais l'erreur persiste.

As tu une idée ?

PS : Je n'ai pas le droit de poster des liens, j'ai raccourci le lien ^^

As-tu essayé avec l'image proposée dans mon script ? Est-ce avec cette image que tu as l'erreur ? Ou alors remets l'image (imageUrl) que tu utilisais précédemment.

J'ai testé avec ton lien et le mien

et j'ai le même résultat :'(

et donc, avec ton url, est-ce que ton script fonctionnait ?

est-ce que tu lances bien le script à partir de l'éditeur de script ?

Avec mon URL ca ne fonctionne pas
Le script est lancé via un autre script qui se déclenche lorsqu'il y a une modification sur ma feuille
En gros lorsque je fais une modif sur ma feuille
la fonction onEdit(e){..} détecte la modif et si les conditions sont remplies il exécute ton script.

Avec mon URL ca ne fonctionne pas

il eut fallu commencer par là, et expliquer avec un fichier comment était lancé le script

il faut que tu définisses un déclencheur sur ta fonction onEdit https://developers.google.com/apps-script/guides/triggers car dans ton cas, il ne s'agit plus d'un simple déclencheur compte tenu qu'il va chercher des informations ailleurs que dans les feuilles.

Arf désolé
je vais de ce pas me fouetter pour faire pénitence

Je vais fermer ce sujet car tu y as répondu un peu plus haut.

J'en ouvrirais un autre si je galère avec les déclencheurs
En tous cas merci de ton aide

Rechercher des sujets similaires à "assigner macro image via"