J'ai un script qui fait référence au nom d'une feuille dans Google Spreadsheets. Lorsque je duplique une feuille avec une cellule qui utilise cette fonction, celle-ci est immédiatement appelée et renvoie un résultat tel que Copy of Sheet1
. Lorsque je renomme Copy of Sheet1
en Sheet2
, la fonction n'est pas appelée à nouveau car le résultat est mis en cache.
Si je passe un paramètre tel que Today()
à la fonction et que je l'ignore simplement, la fonction sera recalculée tous les jours, mais cette opération est sous-optimale pour deux raisons:
Ce que je voudrais faire est de dupliquer une feuille et de lui donner un nom avant que les formules de la feuille ne soient calculées. Est-ce possible? Si tel est le cas, comment cela peut-il se faire? Si non, avez-vous d'autres suggestions?
Cela peut être fait avec un script, en utilisant la méthode insertSheet
qui prend le nouveau nom de la feuille et le modèle après lequel il doit être créé. La première fonction ajoute un élément de menu personnalisé lorsque la feuille de calcul est ouverte, la seconde effectue une duplication lorsque cet élément de menu est appelé.
Autant que je sache, le contenu est copié de la même manière qu'avec la fonction "Dupliquer".
function onOpen() {
var menu = [{name: "Duplicate and name", functionName: "dupName"}];
SpreadsheetApp.getActiveSpreadsheet().addMenu("Custom", menu);
}
function dupName() {
var ss = SpreadsheetApp.getActiveSpreadsheet();
var sheet = ss.getActiveSheet();
var name = Browser.inputBox('Enter new sheet name');
ss.insertSheet(name, {template: sheet});
}