Bonjour,

J'ai fait un petit script en JS qui met en évidence des noms dans un planning construit dans un fichier google Spreadsheet.
Je suis le propriétaire de ce classeur.

Le code simple est le suivant :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
function Surligner(nom) {
	var sheet = SpreadsheetApp.getActiveSpreadsheet().getActiveSheet() ;
	var mois = sheet.getRange("A4").getValue().getMonth() ;
	var listeNbrJours = new Array(31, 29, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31)  ;
 
	nom = sheet.getRange("M1").getValue() ;
 
	sheet.getRange(4, 5, listeNbrJours[mois],9).setBorder(true, true, true, true, true, true, "black", null ) ;
	sheet.getRange(4, 5, listeNbrJours[mois],9).setFontColor("black") ;
 
	for (var i=4 ; i<listeNbrJours[mois]+3 ; i++)
	{
		for (var j=5 ; j<14 ; j++) 
		{
		    if (sheet.getRange(i,j).getValue().match(nom) ) 
			{ sheet.getRange(i,j).setBorder(true, true, true, true, true, true, "red", null ) ;
				sheet.getRange(i,j).setFontColor("red") ;
			}
	    }
	}
}
Ce code marche parfaitement lorsque je le lance depuis la console de script.

Mais si j'appelle la fonction dans une case du tableur (=SURLIGNER(M1)) ou M1 comprend le nom à "Surligner"...
Impossible de faire marcher le script avec message d'erreur suivant : "Vous n'êtes pas autorisé à appeler setBorder. (ligne 9)"
Rien a faire, je ne trouve pas de solution.
Si quelqu'un à une idée, je suis preneur.


Nom : Sans titre.jpg
Affichages : 1097
Taille : 281,4 Ko