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 ».

Éditeur de script google sheets
Accès à l’é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 »).

rennommer le script
Renommage du script

4 – Cliquez enfin sur le bouton d’enregistrement du script.

Enregistrement du script google apps script
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).

menu déclencheurs apps script

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.

options du déclencheur google sheets

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.

autorisation du script pour être executer.

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!


Si vous avez trouvé une faute d’orthographe, merci de nous en informer en sélectionnant le texte en question et en appuyant sur « Ctrl + Entrée« .

    1 Response to "Google Sheets : Comment supprimer automatiquement des feuilles ? (Apps Script)"

    • sanchez patrick

      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

Leave a Reply

Your email address will not be published.

Ce site utilise Akismet pour réduire les indésirables. En savoir plus sur comment les données de vos commentaires sont utilisées.