Pour partager cette vidéo sur les réseaux sociaux ou sur un site, voici son url :
Sujets que vous pourriez aussi aimer :Surligner les cellules des commentaires
Depuis la version 2019, Excel fait la différence entre les
commentaires et les
notes. Les
commentaires (CommentThreaded) peuvent s'apparenter à des échanges dans le cadre d'un travail collaboratif. Les
notes (Comment) sont les anciens commentaires. En VBA, on ne les pilote pas de la même façon.
Sur l'exemple illustré par la capture, nous travaillons sur un calendrier. Certes les jours de Week-End sont déjà marqués en bleu. Mais vous constatez de même que les
commentaires sont repérés automatiquement en orange tandis que les
notes surgissent plus discrètement dans un vert pâle. En effet, nous jugeons que les
commentaires reflètent des
actions importantes à entreprendre tandis que les
notes représentent des tâches de
priorité mineure.
Pour réaliser ce repérage intéressant et utile, ce sont deux toutes petites
fonctions VBA Excel qui sont engagées dans deux
règles de mise en forme conditionnelle.
Classeur Excel à télécharger
Pour développer ces deux fonctions et aboutir cette solution, nous suggérons de baser les travaux sur ce calendrier déjà préparé.
- Télécharger le classeur colorier-commentaires.xlsm en cliquant sur ce lien,
- Cliquer droit sur le fichier réceptionné,
- En bas du menu contextuel, choisir la commande Propriétés,
- En bas de la boîte de dialogue, cocher la case Débloquer et valider par Ok,
- Double cliquer ensuite sur le fichier déverrouillé pour l'ouvrir dans Excel,
Nous retrouvons effectivement le
calendrier des douze mois de l'année avec les
jours de Week-End différenciés en bleu. A ce stade en revanche, les notes et les commentaires ne recouvrent aucune couleur. Mais une petite encoche placée en haut à droite de certaines cases mettent en évidence les notes. Pour les commentaires, c'est une encoche violette, plus grande.
Créer les fonctions
Nous devons commencer par créer les deux fonctions dans un module. Il s'agit nécessairement de
fonctions booléennes. Elles doivent en effet tester si la cellule sur laquelle elles sont appliquées, porte une
note ou un
commentaire. Cette cellule doit donc être déclarée en paramètre de chacune.
- Réaliser le raccourci clavier ALT + F11 pour basculer dans l'éditeur VBA Excel,
- Dans l'explorateur de projet sur la gauche, double cliquer sur l'élément Module1,
Nous avions anticipé pourqu'il existe déjà . Désormais, la feuille de code de ce module, vierge pour l'instant, apparaît au centre de l'écran.
- Dans cette feuille, créer les fonctions EstCom et EstNote, comme suit :
Function EstCom(cellule As Range) As Boolean
End Function
Function EstNote(cellule As Range) As Boolean
End Function
Tester la cellule
Ensuite, ce sont les
objets enfants CommentThreaded et
Comment d'un
objet de cellule, qui représentent respectivement un
commentaire et une
note. Nous devons donc les exploiter sur la cellule passée en paramètre pour savoir si l'un ou l'autre existe.
- Dans la procédure EstCom, ajouter les instructions VBA suivantes :
...
Application.Volatile
EstCom = Not cellule.CommentThreaded Is Nothing
...
Tout d'abord, la
méthode Volatile de l'
objet Application permet de forcer le recalcul dès qu'une cellule de la feuille est modifiée. Puis, si le commentaire n'est pas rien (double négation : Not Is Nothing), nous en déduisons qu'il existe et nous retournons une valeur de succès (True), dans le nom même de la fonction (EstCom), comme il est de coutume en VBA.
La technique est identique pour tester la présence d'une note. C'est l'objet enfant qui change.
- Dans la fonction EstNote, ajouter les instructions VBA suivantes :
...
Application.Volatile
EstNote = Not cellule.Comment Is Nothing
...
Repérer les notes et les commentaires
Il est temps désormais d'exploiter ces deux nouvelles fonctions dans des
règles de mise en forme conditionnelle, pour repérer ces cellules particulières. Comme vous le savez, pour que ces fonctions soient disponibles pour toutes les utilisations, il convient de les enregistrer dans la
bibliothèque d'Excel.
- Revenir sur la feuille Excel (ALT+ Tab),
- Sélectionner toutes les cellules du calendrier, soit la plage B4:M34,
- Dans la section Styles du ruban Accueil, cliquer sur le bouton Mise en forme conditionnelle,
- En bas des propositions, choisir l'option Nouvelle règle,
- Dans la boîte de dialogue qui suit, choisir le type : Utiliser une formule pour...,
- Cliquer dans la zone de saisie du dessous pour l'activer,
- Puis, construire la syntaxe suivante : =EstCom(B4),
Comme vous le savez, l'étude d'une
règle de mise en forme conditionnelle est
chronologique, par rapport à l'ensemble des cellules sélectionnées. C'est pour cela que nous la faisons débuter sur la première d'entre elles (B4 à ne surtout pas figer). A chaque fois que cette nouvelle fonction répondra positivement, nous saurons que la cellule en cours d'analyse porte un
commentaire. Dans ces conditions, nous devons la faire ressortir explicitement du lot.
- Pour cela, cliquer sur le bouton Format en bas de la boîte de dialogue,
- Dans celle qui suit, activer l'onglet Remplissage,
- Dans la palette de couleurs, choisir un jaune orangé pour le fond de la cellule,
- Dès lors, activer l'onglet Police de la boîte de dialogue,
- Cliquer sur le style Gras dans la liste du centre,
- Avec la liste déroulante du dessous, choisir un jaune très foncé pour la couleur du texte,
- Puis, valider ces attributs en cliquant sur le bouton Ok,
Nous sommes ainsi de retour sur la première boîte de dialogue qui résume comment réagiront les cellules portant des commentaires.
Maintenant, si vous validez la création de cette règle par le bouton Ok, vous avez le plaisir de constater que toutes les cellules des commentaires sont effectivement repérées dans les attributs que nous avons définis.
Bien sûr, pour repérer les notes, sur la même plage de cellules du calendrier, il convient de bâtir une seconde règle de mise en forme, impliquant cette fois la nouvelle
fonction EstNote, avec d'autres attributs de couleurs personnalisés.
Si vous ajoutez un commentaire ou une note dans une cellule du calendrier, celle-ci ne réagit pas automatiquement. En effet, ces actions n'engagent pas de modifications à proprement parler, comme le ferait une saisie. Mais si vous enfoncez la touche F2 du clavier pour activer la saisie d'une cellule et que vous validez par la touche Entrée, vous remarquez que les couleurs s'appliquent aux nouvelles cellules des commentaires.