You are currently viewing Comment renommer automatiquement une feuille de calcul Google Sheets ?

Comment renommer automatiquement une feuille de calcul Google Sheets ?

Introduction

Il y a peu, j’ai dû suivre un grand nombre de micro-projets, chaque micro projet est suivi dans un classeur Google Sheets contenant une liste de tâches à réaliser dans un onglet nommé Todo. 

Au fur et à mesure que les tâches sont effectuées, le pourcentage de réalisation est calculé et affiché dans la feuille Todo. 

Mais pour voir ce pourcentage, j’étais contraint d’ouvrir chaque classeur, ce qui pouvait s’avérer rapidement pénible.

Pour ne pas ouvrir tous mes classeurs un par un pour connaître l’avancement de chaque micro-projet, ce qui serait bien c’est que le classeur se renomme tout seul en affichant le pourcentage de réalisation.

C’est ce que nous allons faire ici.

Objectif

Je souhaite que mon classeur soit renommé automatiquement à chaque modification de la façon suivante :

[ pourcentage effectué ] – Nom de la Todo.

Calculer le pourcentage de tâches effectuées

Voyons rapidement comment calculer le pourcentage de tâches effectuées. Pour cela on va simplement diviser le nombre de tâches qui sont cochées (TRUE) par le nombre total de tâches et utiliser un format de cellule pourcentage.

Nombre de tâches effectuées

info : une case à cocher renvoie la valeur booléenne TRUE quand elle est cochée et FALSE quand elle n’est pas cochée.

Pour connaître le nombre de tâches effectuées, la formule est la suivante :

=COUNTIF(D7:D;"TRUE")

Notez que j’ai indiqué le début de la plage (D7), mais pas la fin (D). Ainsi vous pouvez ajouter autant de lignes que vous voulez, la formule fonctionnera toujours.

Nombre total de tâches

Pour cela on va simplement compter le nombre de lignes avec COUNTA().

=counta(D7:D)

Idem ici, je n’indique pas la fin de la plage pour que la formule puisse fonctionner quel que soit le nombre de lignes de la todo.

Afficher le pourcentage

Reste à afficher le pourcentage en combinant les deux formules. On divise le nombre de cases cochées (TRUE) par le nombre total de cases.

= COUNTIF(D7:D;"TRUE")/counta(D7:D)

Ceci va vous afficher un nombre au format décimal, (ex: 0,6666666667).

Arrondir le résultat

Bien, mais on ne veut pas autant de chiffres après la virgule. On va arrondir avec la formule ROUND() et demander deux chiffres après la virgule.

=ROUND(COUNTIF(D7:D;"TRUE")/counta(D7:D);2).

Il ne nous reste plus qu’à transformer ce chiffre en pourcentage en modifiant le format de la cellule.

On applique le format pourcentage à la cellule

La formule complète en D5

La Cellule D5 affiche bien désormais un chiffre en pourcentage (%) grâce au format de cellule et à la formule : 

=ROUND(COUNTIF(D7:D;"TRUE")/counta(D7:D);2).

Création du nom de la feuille

Nous allons stocker dans une cellule (la cellule A1) le nom du classeur qui sera composé des éléments suivants :

  • un crochet : [
  • le pourcentage de tâches réalisées (cellule D5)
  • un crochet : ]
  • un séparateur (espace, tiret, selon votre choix)
  • Le nom de la TODO (contenu en A3).

Pour cela on va utiliser l’opérateur de concaténation & et reconstituer le nom de la feuille à partir de ces éléments.

La formule est :

="[ " & D5 & " ] - " & A3

Le résultat est le suivant :

[ 0,67 % ] – MISE EN PLACE HÉBERGEMENT – CLIENT [ #1 ]

Le chiffre est décimal et ne correspond pas à ce que l’on veut.

Pour obtenir le résultat voulu, il va falloir multiplier le chiffre en D5 par 100.
Corrigeons notre formule :

="[ "& D5*100 & " % ] - " & A3

Le résultat est cette fois-ci correct :

[ 67 % ] – MISE EN PLACE HÉBERGEMENT – CLIENT [ #1 ]

Le Script

Ne reste plus que la partie Script à mettre en place.

Rendez-vous dans le menu Outils / Éditeur de scripts.

Dans la section Code.gs, copiez-collez le code suivant :

 // Ce code permet de renommer automatiquement le classeur
 // avec le contenu de la cellule A1 à chaque modification

 function onEdit() {
   var Classeur = SpreadsheetApp.getActiveSpreadsheet(); 
   var activeDoc = SpreadsheetApp.getActiveSpreadsheet().getSheetByName("Todo"); 
   var Titre_todo = activeDoc.getRange('A1').getValue();                                        
   // modifie le titre du doc
   Classeur.setName(Titre_todo);
 } 

On explique le code :

  • onEdit est un trigger (un déclencheur) qui va s’exécuter à chaque modification de la feuille.
  • var Classeur (le classeur actuel)
  • var activeDoc (on cible uniquement l’onglet Todo)
  • vat Titre_todo (on mets dans la variable Titre_todo le contenu de la cellule A1
  • Classeur.setName(Titre_todo) on renomme le classeur avec le contenu de la variable Titre_todo.

Et voilà, le tour est joué. 

Vous pouvez masquer la ligne 1 de votre Todo.

Remplissez le nom de la Todo en cellule A3, ajoutez vos lignes, cochez vos cases au fur et à mesure de l’avancée de votre travail, et le nom du fichier sera automatiquement mis à jour.

Vous pouvez retrouver le fichier Google Sheet ici.

Merci à Larry pour sa participation à cet article.


Tous les articles par catégorie

Envie de plus de lecture ? Tous les articles sont listés sur cette page par catégorie.

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

Cet article a 3 commentaires

  1. ertveldt

    bonjour,

    j’aimerais faire presque la même chose…. mais pas en modifiant le nom du classeur mais bien des feuilles… Il s’agit de faire un classeur avec les notes des élèves et un résumé par élève et par feuille ensuite. Et plutôt que de changer les noms des feuilles à la main, j’aimerais récupérer le nom d’une cellule de la feuille…

    D’avance merci

Laisser un commentaire