Lorsque vous définissez une macro avec l’enregistreur de macros, Excel crée une procédure, lui donne le nom de la macro et la stocke dans le module attaché au classeur. Nous allons vérifier que l’inverse est également vrai. En d’autres termes, que si vous définissez une procédure en VBA, elle est accessible sous la forme d’une macro.
Une première procédure
A titre d’exemple, vous allez utiliser le code suivant dans le module attaché au classeur :
Sub EnRouge() ' ' Arrière-plan rouge ' Selection.Interior.Color = RGB(255, 0, 0) End Sub
La procédure s’appelle EnRouge. Elle utilise la fonction RGB() pour affecter la couleur rouge (RGB(255,0,0)) à l’arrière-plan (Interior.Color) des cellules sélectionnées (Selection).
Vous voyez, il n’y a rien de bien compliqué. Le tout est de connaitre les termes à utiliser et de les utiliser dans le bon ordre.
La fonction RGB() ne vous dit peut-être rien. Dans ce cas, sachez qu’il s’agit d’une fonction qui se retrouve dans la plupart des langages de programmation. Elle définit une couleur par ses composantes Red (rouge), Green (vert) et Blue (bleu).
La « force » de chaque composante est donnée par un nombre entier compris entre 0 et 255. Si une composante vaut 0, la couleur correspondante n’est pas du tout présente. Inversement, si une composante vaut 255, la couleur correspondante est présente à 100%. Et entre les valeurs 0 et 255, la quantité de couleur va croissante.
En extrapolant, il est facile de comprendre que vous disposez de 256 niveaux de rouge, de 256 niveaux de vert et de 256 niveaux de bleu. Ce qui représente 256 x 256 x 256 = 16 777 216 couleurs. Un peu plus de 16 millions de couleurs : il y a de quoi faire !
Rassurez-vous, il n’est pas nécessaire de connaitre toutes les valeurs des composantes RVB. Pour définir une couleur, vous utiliserez une application graphique quelconque : PhotoFiltre par exemple si vous êtes sous Windows (Vous trouverez des formations vidéo à PhotoFiltre sur cette page : https://www.mediaforma.com/photofiltre/).
Lancez PhotoFiltre, cliquez sur la couleur d’avant-plan ou d’arrière-plan dans la palette d’outils (1), déplacez le signe Plus dans la palette (2) et choisissez la luminosité de la couleur sélectionnée (3). Les composantes RGB sont disponibles dans les cases Rouge, Vert et Bleu :
Si vous utilisez un autre système d’exploitation, une application comparable à PhotoFiltre est forcément disponible : The Gimp ou PhotoShop par exemple.
Voyons maintenant si la procédure EnRouge est bien disponible sous la forme d’une macro. Il n’y a rien de plus simple. Basculez sur l’onglet Développeur dans le ruban, puis cliquez sur l’icône Macros dans le volet Code. Comme vous le voyez, la macro EnRouge a bien été créée :
Fermez la boîte de dialogue Macro.
Pour voir si le code fonctionne, sélectionnez plusieurs cellules dans la feuille. Toujours sous l’onglet Développeur du ruban, cliquez sur Macros, dans le groupe Code, sélectionnez la macro EnRouge et cliquez sur Exécuter. Voici le résultat :
Avant de terminer cette section, j’ai une question pour vous. Vous avez vu que cette instruction affectait un arrière-plan rouge aux cellules sélectionnées :
Selection.Interior.Color = RGB(255, 0, 0)
Quelle instruction devriez-vous utiliser pour affecter la couleur verte aux caractères qui se trouvent dans les cellules sélectionnées ?
Selection.Font.Color = RGB(0, 255, 0)
Pour terminer, changez le nom et le commentaire de la procédure EnRouge() :
Sub EnVert() ' ' Caractères en vert ' Selection.Font.Color = RGB(0, 255, 0) End Sub