Protection et déprotection par script
Bonjour,
J'ai un sheet protégé, excepté qq cellules. Le but est de permettre à l'utilisateur de saisir uniquement dans les cellules en question. Jusque là tout va bien.
Quand tu l'utilisateur valide (via un bouton qui execute un script), je veux mettre à jour une cellule protégée. Y a t il un moyen de déprotéger la cellule pour la mettre à jour uniquement par script tout en conservant la protection après le script. J'ai essayé de déprotéger par script, mais cela ne fonctionne pas, l'utilisateur (user actif) n'a pas les autorisations.
En clair je souhaite mettre à jour des cellules protégées uniquement quand celles ci sont faites par script, et surtout pas en utilisation normale dans la feuille. Possible ?
Merci !
Bonjour,
Vous pouvez vous penchez sur LockService qui propose plusieurs méthodes permettant de gérer les requêtes simultanées : https://developers.google.com/apps-script/reference/lock?hl=fr
Voici un exemple simple, permettant de visualiser ce qu'il permet de faire :
function ajouterNouvelleLigne() {
// Obtenez le verrou pour éviter les accès concurrents
var verrou = LockService.getScriptLock();
try {
// Attendre jusqu'à ce que le verrou soit disponible
verrou.waitLock(30000); // Attendre 30 secondes pour obtenir le verrou, puis abandonner si impossible
// Ouvrir la feuille de calcul
var feuille = SpreadsheetApp.getActiveSpreadsheet().getActiveSheet();
// Obtenir les données à ajouter
var nouvelleDonnee = ["Nouvelle Valeur 1", "Nouvelle Valeur 2", "Nouvelle Valeur 3"];
// Ajouter une nouvelle ligne à la feuille de calcul
feuille.appendRow(nouvelleDonnee);
} catch (e) {
// Gérer les erreurs
Logger.log("Erreur: " + e.message);
} finally {
// Libérer le verrou une fois que l'opération est terminée
verrou.releaseLock();
}
}