Comment insérer des commentaires automatiques et intelligents dans Excel !
Dans ce tutoriel, je vais montrer comment insérer automatiquement des commentaires dans des cellules Excel. Ces commentaires peuvent s'avérer très utiles pour fournir des informations supplémentaires sur les données, expliquer les formules utilisées, ou même pour laisser des instructions aux utilisateurs du document.
Téléchargement
Vous pouvez télécharger le fichier d'exemple de cet article en cliquant sur le lien suivant :
Tutoriel Vidéo
1. Qu'est-ce qu'un commentaire ou une note Excel ?
Dans Excel, un commentaire est un élément graphique utilisé pour annoter une cellule spécifique, permettant d'y associer des notes explicatives ou des rappels qui ne sont pas directement visibles dans la feuille de calcul elle-même.
Ces notes peuvent concerner la source des données, des précisions sur les calculs effectués, ou encore des instructions à l'attention des autres utilisateurs du document.
Le commentaire devient visible lorsque l'utilisateur place son curseur sur la cellule concernée ou lorsqu'il choisit de le rendre constamment visible.
Ces derniers sont particulièrement utiles dans les contextes collaboratifs où plusieurs personnes interagissent avec le même fichier. Ils permettent de :
- Clarifier les données : Un commentaire peut expliquer pourquoi une valeur spécifique a été utilisée ou la logique derrière un chiffre particulier.
- Documenter les modifications : Ils peuvent servir à indiquer les changements apportés à une feuille de calcul, qui a effectué ces modifications, et pourquoi.
- Guider les utilisateurs : Ils fournissent des instructions ou des conseils sur la façon de manipuler les données dans la feuille de calcul, ce qui est essentiel pour l'orientation des nouveaux utilisateurs.
Depuis la version 365 d'Office, Excel distingue les "commentaires" des "notes".
Les notes fonctionnent comme les anciens commentaires, tandis que les nouveaux commentaires sont conçus pour être plus interactifs, permettant des discussions comme dans les documents partagés en ligne.
Ces derniers peuvent inclure des réponses et des mentions, ce qui les rend idéaux pour les travaux collaboratifs en temps réel.
Pour ajouter un commentaire dans Excel, il suffit de suivre les étapes suivantes :
- 1. Pour commencer, nous sélectionnons la cellule dans laquelle nous souhaitons ajouter un commentaire.
- 2. Ensuite, nous effectuons un clic-droit sur celle-ci, afin de cliquer sur "Insérer un commentaire". Un petit rectangle de texte apparaît où nous pouvons saisir notre note.
- 3. Une fois le commentaire saisi, il reste associé à la cellule, et une petite marque rouge apparaît en haut à droite de celle-ci pour indiquer sa présence.
- 4. Le commentaire s'affiche lorsque nous survolons la cellule avec la souris. Nous pouvons également choisir de rendre les commentaires toujours visibles en ajustant les options d'affichage.
Pour aller un peu plus vite, nous pouvons également utiliser le raccourci clavier [Maj]+[F2] pour ajouter rapidement le commentaire dans la cellule sélectionnée.
2. Qu’est-ce que le VBA
Maintenant, voyons comment automatiser ce processus afin d’insérer automatiquement un commentaire lors de la saisie sur Excel.
Et pour cela, nous allons créer une petite macro en VBA.
VBA, acronyme de Visual Basic for Applications, est un langage de script intégré à Microsoft Office, offrant une puissante fonctionnalité pour personnaliser et automatiser les tâches.
Celui-ci permet en effet de créer des macros, des ensembles d'instructions programmées pour exécuter des tâches spécifiques dans Excel. Ces macros peuvent être utilisées pour automatiser des processus répétitifs, ce qui peut considérablement améliorer l'efficacité et la productivité.
Pour en savoir plus sur le VBA et comment ce langage permet de démultiplier les possibilités offertes par Excel, vous pouvez découvrir mon livre « Apprendre VBA pour les grands débutants » en cliquant ici.
3. Créer une macro sans code !
Pour simplifier au maximum la création de cette macro, nous allons utiliser un outil surpuissant d’Excel : l’enregistreur macro.
Ce dernier est en effet un outil intégré à Excel qui permet d'enregistrer les actions que nous effectuons dans une feuille de calcul sous forme de code VBA. Cela nous permet de créer des macros personnalisées sans avoir à écrire manuellement chaque ligne de code, ce qui va nous donner une base de travail déjà mise en place !
Pour cela, nous allons suivre les étapes suivantes :
1. Pour commencer, nous allons lancer l’enregistrement de macro en cliquant sur le petit bouton que nous retrouvons en bas à gauche de la fenêtre Excel.
2. Une fois l'enregistreur de Macro ouvert, une fenêtre apparaîtra nous demandant de nommer notre macro et de lui attribuer un raccourci clavier facultatif. Nous donnons un nom significatif à notre macro, par exemple "InsererCommentaire", et nous pouvons également attribuer un raccourci clavier si nous le souhaitons, par exemple [Ctrl]+[I] pour « Insérer ». Ensuite, nous cliquons sur "OK" pour démarrer l'enregistrement.
3. Maintenant que l'enregistrement est activé, toutes les actions que nous effectuons dans Excel seront enregistrées en tant que code VBA. Nous procédons à l'insertion d'un commentaire fixe dans une cellule spécifique en suivant les étapes que nous avons un peu plus tôt. Ici, nous insérons le jour de la semaine dans la cellule active ([Maj]+[F2], puis saisi du texte dans la boîte de commentaire).
4. Une fois que nous avons terminé d'enregistrer nos actions, nous cliquons à nouveau sur le bouton situé en bas à gauche de la fenêtre Excel pour stopper l’enregistrement de notre macro.
Et c’est tout, la macro est maintenant bien enregistrée !
À présent, pour la tester, il suffit de supprimer le commentaire de la cellule active, puis d’utiliser le raccourci clavier [Ctrl]+[I], que nous avons défini un peu plus tôt pour le voir apparaître à nouveau automatiquement !
Si nous le souhaitons, nous pouvons maintenant accéder au code VBA généré en ouvrant l'éditeur VBA avec [Alt]+[F11]. Dans l'éditeur VBA, nous recherchons le module dans lequel notre macro a été enregistrée et examinons le code généré :
Sub insererCommentaire()
'
' insererCommentaire Macro
'
Range("A5").AddComment
Range("A5").Comment.Visible = False
Range("A5").Comment.Text Text:="Lundi"
Range("A5").Select
End Sub
Cette macro ajoute un commentaire avec le texte "Lundi" à la cellule A5 et le rend invisible par défaut.
4. Amélioration de la macro
Maintenant, voyons comment améliorer cette macro que nous avons enregistrée précédemment pour qu'elle soit plus flexible et applicable à n'importe quelle sélection de cellules.
En effet, ici la macro permet uniquement d’ajouter le mot « lundi » dans la cellule A5.
Or, notre objectif va être d’ajouter automatiquement le commentaire sur la cellule active, et que celui-ci affiche le jour de la date éventuellement saisie, de manière dynamique.
Ainsi, voici les opérations à mettre en place.
Pour commencer, nous allons remplacer la référence à la cellule A5 par celle de la cellule active :
ActiveCell.AddComment
ActiveCell.Comment.Visible = False
ActiveCell.Comment.Text Text:="Lundi"
ActiveCell.Select
Maintenant, de retour sur la feuille de calcul, si nous sélectionnons une autre cellule et que nous appuyons sur [Ctrl]+[i], alors le commentaire s’ajoutera automatiquement !
En revanche, si nous appuyons une seconde fois sur la même cellule, alors Excel nous affichera une erreur, car nous demandons d’ajouter un commentaire sur une cellule qui en contient déjà un !
Nous devrons donc supprimer celui-ci au tout début de la macro grâce à la méthode « Delete » de l’objet « Comment » :
ActiveCell.Comment.Delete
Sauf que si la cellule ne contient aucun commentaire, alors Excel nous affichera encore une erreur !
Pour l’empêcher, nous allons simplement désactiver la gestion des erreurs dans notre macro grâce à l’instruction « On Error Resume Next » au tout début de la macro :
On Error Resume Next
Maintenant, il ne reste plus qu’à rendre le calcul de la date dynamique, en utilisant la fonction VBA « Format », qui permet d’afficher un contenu en utilisant une règle de formatage, comme nous le ferions avec le même de format des nombres dans Excel.
Mais avant cela, nous allons souhaiter nous assurer que la cellule active contient bien une date, en utilisant une instruction IF et la fonction IsDate de VBA, qui va nous retourner la valeur VRAI lorsque l’argument est effectivement une date, et FAUX dans le cas contraire :
Comme vous pouvez le constater, pour afficher le jour de la semaine correspondant à la date de la cellule active, nous saisissons le format « dddd » (« d » pour « Day » en anglais).
Maintenant, le jour affiché, sera calculé automatiquement :
5. Bonus : Afficher le détail d’une formule
Pour finir, allons améliorer encore davantage notre macro pour qu'elle puisse non seulement insérer automatiquement un commentaire affichant le jour de la semaine lorsque la cellule active contient une date, mais aussi afficher le détail de la formule et la valeur des antécédents lorsque la cellule active contient une formule.
Cela sera très pratique pour débugger facilement une formule complexe !
Pour commencer, nous allons placer à la fin du test « IF », afin de mettre en place une deuxième condition, laquelle va consister à contrôler si la cellule active contient une formule.
Nous allons utiliser l’instruction ElseIF et la propriété « HasFormula » de l’objet ActiveCell :
ElseIf ActiveCell.HasFormula Then
Ensuite, nous déclarons une nouvelle variable de type chaîne de caractères appelée `commentaire`. Cette variable sera utilisée pour stocker les informations sur la formule et les antécédents de la cellule active, que nous pourrons ensuite afficher dans le commentaire :
Dim commentaire As String
Puis, nous affectons à la variable `commentaire` la formule de la cellule active en utilisant la propriété `FormulaLocal`, qui renvoie la formule sous forme de texte tel qu'il est affiché dans la barre de formule d'Excel. Pour ajoutons à la suite de la formule un saut de ligne avec la fonction « Chr(10) » afin que les informations sur les antécédents soient affichées sur des lignes séparées.
commentaire = ActiveCell.FormulaLocal & Chr(10)
Nous déclarons ensuite une nouvelle variable « c » de type Range, qui sera utilisée pour parcourir les antécédents de la cellule active, c’est-à-dire les autres cellules pour lesquelles la valeur est utilisée pour calculer le résultat de la formule :
Dim c As Range
Pour obtenir la liste de ces cellules, nous mettons en place une boucle qui parcourt chaque cellule précédente (antécédent) de la cellule active. La propriété `Precedents` renvoie en effet une collection de toutes les cellules qui sont référencées dans la formule de la cellule active.
For Each c In ActiveCell.Precedents
Next
À chaque itération de la boucle, nous ajoutons à la variable `commentaire` l'adresse et la valeur de l'antécédent actuel, suivies de `Chr(10)` pour un saut de ligne.
Ici, « c.Address » renvoie l'adresse de la cellule précédente, tandis que « c.Value » renvoie la valeur de cette cellule.
commentaire = commentaire & Chr(10) & c.Address & " : " & c.Value
Puis, nous effectuons un copier-coller de la partie que nous avons créé précédemment pour insérer la date du jour dans la cellule, sauf que le texte ajouté correspond ici au contenu de la variable commentaire :
ActiveCell.Comment.Delete
ActiveCell.AddComment
ActiveCell.Comment.Visible = False
ActiveCell.Comment.Text Text:=commentaire
En combinant ces lignes, la macro est capable de générer dynamiquement un commentaire contenant le détail de la formule et la valeur de ses antécédents pour la cellule active :
Nous sauvegardons ensuite le classeur en choisissant le type de fichier "Classeur Excel avec macros activées (*.xlsm)" et donnons un nom à notre fichier afin d’enregistrer la macro et de pouvoir la retrouver une fois le classeur fermé.