Dans cet article, voyons un nouveau cas d’usage avec Google Apps Script et Google Sheets. Nous allons voir comment supprimer automatiquement des feuilles dans un fichier Google Sheets. Ce script est notamment intéressant à utiliser lors du partage d’un fichier à plusieurs personnes.
// DÉCOUVREZ LES FORMATIONS SUR GOOGLE SHEETS //
INFORMATION : Vous débutez avec Google Apps Script ? Je vous recommande regarder l’article « Apprendre à réaliser son premier Google Apps Script ».
Présentation vidéo
Présentation du cas d’usage
But et intérêt du script
Le but de ce cas d’usage est de « supprimer automatiquement la(les) feuille(s) non définie(s) dans un fichier Google Sheets ».
Par exemple ce script peut être intéressant à utiliser dans le cas où nous avons besoin de partager un fichier à plusieurs personnes en modification. Cependant comme tout le monde à accès en modification au fichier, il est possible pour tout à chacun de créer de nouvelles feuilles.
Le script va ainsi nous permettre de supprimer automatiquement les feuilles qui pourraient être créées de façon volontaire ou par erreur (courant lors d’un usage avec l’application mobile) par les différents collaborateurs.
Cependant, en tant que Propriétaires d’un fichier, nous ne voulons pas spécialement que d’autres personnes puissent créer de nouvelles feuilles, mais simplement modifier les feuilles existantes.
Gain du script
Ce script est donc utile à utiliser dans le cas d’un fichier en partage entre plusieurs personnes. Voici notamment les avantages que cela apporte dans ce cas :
- Améliorer la maîtrise du fichier pour le Propriétaire.
- Afficher uniquement les feuilles définies (feuilles de travail).
- Simplifier l’accès aux données pour les collaborateurs.
- Optimiser la performance du fichier (ouverture plus rapide, car moins de données à ouvrir).
INFORMATION : Pour avoir une maîtrise complète du fichier, il est pertinent de cumuler ce script avec la protection de feuille ou de plage de cellules (en fonction de ses besoins).
Présentation du Script
Voyons maintenant comment intégrer le script à un fichier Google Sheets et ensuite, comment il fonctionne.
Intégration
1 – Pour intégrer le script à l’un fichier Sheets, ouvrez le document en question et cliquez sur « Outils > Éditeur de script ».
2 – Copiez le code ci-dessous et collez-le dans l’éditeur de script.
// Script permettant de supprimer automatiquement des feuilles non définies dans le fichier.
// Le déclencheur - Modification du fichier -
function deleteSheets() {
var ss = SpreadsheetApp.getActiveSpreadsheet();
var sheets = ss.getSheets();
for (i = 0; i < sheets.length; i++) {
switch(sheets[i].getSheetName()) {
// Ajouter en "case" les feuilles à ne pas supprimer.
case "TDB":
break;
// Suppression de toutes les feuilles sauf les feuilles spécifiées en "case".
default:
ss.deleteSheet(sheets[i]);
}
}
}
3 – Renommez ensuite le script (ex : « deleteSheets »).
4 – Cliquez enfin sur le bouton d’enregistrement du script.
Fonctionnement et modification
Dans un premier temps dans le script, il faut créer la fonction (function deleteSheets). Il faut ensuite commencer par définir les variables « ss » et « sheets ». Puis une boucle « For » pour faire le tour de toutes les feuilles présente dans le fichier.
Nous utilisons ensuite « Switch » qui permet de définir les feuilles à ne pas supprimer (spécifier par « case »).
Dans ce cas, une fois le script activé, toutes les feuilles sauf celles qui se nomment « TDB » ou « Test » seront supprimées.
Pensez bien à modifier alors ces valeurs selon la dénomination des feuilles dont vous avez besoin dans votre fichier.
Enfin « default: » permet de supprimer toutes les feuilles qui ne sont pas renseignées dans les « case ».
Définir un déclencheur
Nous allons maintenant définir un déclencheur. À savoir à quel moment le script va supprimer les feuilles non déclarées.
1 – Cliquez sur le menu « Déclencheurs » (à gauche).
2 – Cliquez maintenant sur « Ajouter un déclencheur » (bouton en bas à droite).
3 – Définissez ensuite les options du déclencheur. Dans ce cas, j’ai défini l’option de déclenchement « lors d’une modification » qui est celle qui me paraît la plus pertinente.
Activation du script
Enfin, pour activer le script et vérifier si tout fonctionne comme prévu, retournez dans le menu « Éditeur » et cliquez sur le bouton « Exécuter ».
Vous allez ensuite devoir autoriser le script à s’exécuter sur votre compte.
Sélectionnez ensuite votre compte Google, puis sur le message d’alerte qui s’affiche, cliquez sur « Paramètres avancés > Accéder à … » et pour terminer, cliquez sur « Autoriser ».
Pour conclure…
Voilà pour ce Google Apps Script qui permet de supprimer automatiquement des feuilles inutiles d’un Google Sheets. Notamment dans le cas d’un usage en collaboration.
J’espère que ce script vous sera utile pour améliorer encore la maîtrise de vos fichiers collaboratifs. 🙂
Si vous avez des questions sur l’utilisation du script, n’hésitez pas à les poser dans la zone de commentaires ci-dessous.
Portez-vous bien et à bientôt!
1 Response to "Google Sheets : Comment supprimer automatiquement des feuilles ? (Apps Script)"
bonjour, sujet très intéressant que je vais utiliser dans ma feuille sheet partagée
pourriez-vous m’aider pour le problème suivant : ma feuille sheet est comme un agenda, la première ligne contient les dates du calendrier
je souhaite qu’à l’ouverture de la feuille, une macro s’exécute et supprime automatiquement la colonne entière si la date de cette colonne est antérieure à la date du jour
je sais faire avec excel mais absolument pas avec google
merci d’avance pour votre aide si possible