Comment automatiser le changement de couleur des onglets Excel ?

Guide « 108 astuces pour grands débutants sur Excel ! » Offert
Booster votre productivité en téléchargeant gratuitement votre ebook PDF des meilleures astuces pour les débutants et les pros d'Excel
Excel formation - 00 Astuces - 100
 

Dans ce tutoriel, je vais vous montrer comment changer la couleur de l'onglet des feuilles Excel en fonction de la valeur d'une cellule.

Cette astuce est très utile pour une meilleure visualisation et une meilleure organisation des données dans Excel.

 

Téléchargement

Vous pouvez télécharger le fichier d'exemple de cet article en cliquant sur le lien suivant :

This site is protected by reCAPTCHA and the Google Privacy Policy and Terms of Service apply.
 

 

Tutoriel Vidéo

 

 

1. Introduction au changement de couleur de l'onglet en fonction de la valeur de la cellule

 

   1.1. Qu’est-ce qu’un onglet

 

Excel permet d'organiser des données de toutes sortes en les répartissant sur plusieurs feuilles de calcul, chacune ayant son propre contenu.

Les boutons situés en bas de la fenêtre Excel, appelés « onglets », permettent de naviguer rapidement entre ces différentes feuilles de calcul.

Excel formation - couleur onglet - 01

Chacun de ces onglets représente une feuille de calcul unique, avec son propre nom et son propre contenu.

Ils sont donc essentiels pour organiser efficacement un classeur Excel, en séparant les données en catégories pour mieux les organiser, tout en facilitant la navigation dans le classeur.

Les onglets offrent également une vue d'ensemble rapide du contenu du classeur et permettent de passer rapidement d'une feuille de calcul à une autre.

 

   1.2. Pourquoi est-il utile de changer la couleur de l'onglet ?

 

Changer la couleur de l'onglet d'une feuille Excel peut grandement améliorer l'organisation et la lisibilité de notre classeur.

En effet, en attribuant des couleurs différentes à des catégories spécifiques, nous pourrons rapidement identifier les feuilles contenant les données que nous recherchons.

Cela est particulièrement utile pour les classeurs contenant une grande quantité de données.

Nous pourrons ainsi utiliser des couleurs différentes pour distinguer les feuilles de calcul contenant les données de ventes, les feuilles de données de production, les feuilles de données de coûts, etc.

Les couleurs peuvent également être utilisées pour indiquer les niveaux de priorité ou pour mettre en évidence les feuilles de calcul importantes.

 

   1.3. Comment changer la couleur d’un onglet ?

 

Pour modifier la couleur d'un onglet, nous devons tout d'abord cliquer avec le bouton droit de la souris sur l'onglet que nous souhaitons modifier.

Cela fera apparaître un menu déroulant dans lequel nous devrons sélectionner l'option « Couleur d'onglet ».

Une fois cette option sélectionnée, une boîte de dialogue s'ouvrira, qui nous permettra de choisir la couleur que nous souhaitons utiliser pour l'onglet.

Nous pouvons choisir la couleur en utilisant la palette de couleurs proposée ou en utilisant la fonctionnalité de sélection de couleurs personnalisées.

Une fois que nous avons choisi la couleur que nous voulons, nous pouvons cliquer sur le bouton « OK » pour enregistrer nos modifications.

Il est important de noter que la modification de la couleur d'un onglet ne modifie pas le contenu de la feuille de calcul elle-même, elle permet simplement de personnaliser la présentation de l'onglet pour faciliter la navigation dans le classeur Excel.

 

2. Comment adapter la couleur des onglets au contenu des cellules ?

 

   2.1. Présentation d’un classeur

 

Dans cet exemple, nous allons travailler sur un classeur contenant de nombreuses feuilles de calcul reprenant les chiffres de ventes de plusieurs magasins implantés dans des différents pays.

Chaque feuille compile les ventes réalisées dans chaque pays.

Notre objectif est de rendre la navigation dans ce classeur plus facile et plus efficace en adaptant la couleur des onglets de chaque feuille en fonction du continent correspondant à chaque pays.

Nous utiliserons donc une macro VBA pour adapter la couleur des onglets de chaque feuille en fonction du continent correspondant à chaque pays, le nom de ce continent étant saisi en cellule A2.

En effet, il serait fastidieux de modifier manuellement la couleur de chaque onglet en fonction du continent, surtout si notre classeur contient un grand nombre de feuilles.

La programmation d'une macro VBA nous permettra de gagner du temps en automatisant cette tâche et nous assurera également que les couleurs sont uniformes sur l'ensemble du classeur.

Une macro VBA est un ensemble d'instructions ou de codes écrits en langage de programmation VBA (Visual Basic for Applications) qui permettent d'automatiser des tâches répétitives dans Excel.

Pour créer une macro VBA dans Excel, nous avons besoin d'utiliser l'éditeur de macros intégré.

Pour accéder à cet éditeur, nous pouvons utiliser le raccourci clavier « Alt + F11 » pour ouvrir directement l'éditeur.

Une fois dans l'éditeur de macros, nous créons une nouvelle macro en cliquant sur « Insertion », puis sur « Module ».

Un module est une feuille de code, qui permet de l'organiser en regroupant les instructions qui ont une fonctionnalité commune.

Ensuite, nous allons pouvoir créer la macro « changerCouleur » en utilisant le mot-clé Sub, suivi du nom de la macro :

Sub changerCouleur()
End Sub

Excel ajoute alors la ligne « End Sub » qui représente la fin de la macro, et tout ce que nous allons saisir entre ces deux lignes sera exécuté à chaque fois que nous appellerons la macro changerCouleur.

Ensuite, nous déclarons une variable nommée « sh » que nous typons en tant que « Worksheet », c'est-à-dire une feuille de calcul :

Dim sh As Worksheet 

Nous utilisons une boucle « For Each » pour parcourir toutes les feuilles de calcul du classeur.

Comme nous l’avons déjà vu dans un tutoriel précédent, une boucle « For Each » est une instruction VBA qui permet de parcourir tous les éléments d'une collection, comme les éléments d'un tableau, les cellules d'une plage ou les feuilles d'un classeur.

Elle permet de répéter une action pour chaque élément de la collection, sans avoir besoin de connaître le nombre d'éléments à l'avance.

La boucle « For Each » se compose d'une variable de type objet, qui est initialisée à chaque élément de la collection, et d'un bloc d'instructions qui est exécuté pour chaque élément.

La boucle se termine automatiquement une fois que tous les éléments de la collection ont été parcourus.

For Each sh In ThisWorkbook.Worksheets

Nous utilisons ensuite l'instruction « Select Case » pour traiter les différentes valeurs saisies en cellule A2 sur chaque feuille de calcul et adapter la couleur de l'onglet en conséquence.

En effet, l'instruction Select Case permet de tester une variable, ici la valeur de la cellule A2 et d’effectuer une opération différente en fonction de sa valeur.

Si la valeur correspond à l'une des valeurs possibles, le code associé à cette valeur est exécuté.

Pour chaque cas, nous modifions la couleur de l'onglet de la feuille en question en utilisant la propriété « Tab.Color » de l'objet feuille de calcul et en spécifiant les valeurs RGB de la couleur voulue :

        Select Case sh.[a2]
 
            Case "Europe"
                sh.Tab.Color = RGB(255, 0, 0)
            Case "Asie"
                sh.Tab.Color = RGB(0, 176, 80)
            Case "Afrique"
                sh.Tab.Color = RGB(0, 112,  192)
            Case Else
                sh.Tab.ColorIndex = xlColorIndexNone
        End Select

Si aucune des valeurs saisies ne correspond à l'un des cas, nous réinitialisons la couleur de l'onglet à l'aide de la propriété « Tab.ColorIndex » :

sh.Tab.ColorIndex = xlColorIndexNone 

Nous fermons ensuite la boucle « For Each » :

Next

Nous pouvons tester la macro en appuyant sur la touche [F5].

Excel formation - couleur onglet - 02

La couleur des onglets a bien été adaptée automatiquement !

 

   2.2. Utiliser un évènement pour lancer la macro lors d’un changement de feuille

 

Maintenant que nous avons créé la macro changerCouleur(), nous voulons qu'elle se lance automatiquement lors de chaque changement sur le classeur.

Pour cela, nous allons utiliser un évènement de la classe Workbook appelé SheetChange.

En effet, un évènement est un type de macro particulier qui va se lancer lorsque quelque chose se produit dans un classeur, comme l'ouverture d'un classeur, la modification d'une cellule ou la sélection d'une feuille.

Pour créer cet évènement, nous cliquons sur « ThisWorkbook » dans l'éditeur de macros, puis nous sélectionnons « Workbook » dans la liste déroulante.

Nous sélectionnons ensuite l'évènement « SheetChange » dans la liste déroulante de droite.

L'évènement SheetChange se produit en effet lorsqu'une cellule est modifiée sur une feuille de calcul du classeur.

L’éditeur nous ajoute alors un nouvel évènement Workbook_SheetChange depuis lequel nous allons pouvoir appeler la macro changerCouleur :

Excel formation - couleur onglet - 03

Maintenant, si nous modifions la valeur de la cellule A2 d’une cellule, Excel va automatiquement changer la couleur de celle-ci :

Excel formation - couleur onglet - 04

Nous pourrons également ajouter de nouvelle feuille sur le classeur, et dès que nous saisissons l’un des continents en cellule A2, Excel va en modifier la couleur de l’onglet :

Excel formation - couleur onglet - 05

 

3. Reprendre la couleur de la première cellule de chaque feuille

 

Maintenant, voyons un autre cas de figure : ici, nous souhaiterons utiliser directement la couleur de fond de la cellule A1 pour déterminer la couleur d’onglet à utiliser.

Pour cela, nous allons sélectionner la macro changerCouleur, et la copier-coller juste en dessous :

Excel formation - couleur onglet - 06

Nous avons deux macros identiques, et nous allons pouvoir modifier le nom de la seconde en « changerCouleurViaCouleurCellule ».

Dans cette seconde macro, nous allons remplacer le « Select Case » par une instruction conditionnelle « If » pour vérifier si la couleur de la cellule A1 de la feuille actuelle est blanche (valeur 16777215) en utilisant la ligne :

If Sh.[a1].Interior.Color = 16777215 Then 

Si la cellule est blanche, nous n’allons pas appliquer de couleur à l'onglet de la feuille en utilisant la ligne :

Sh.Tab.ColorIndex = xlColorIndexNone 

Sinon, si la couleur de la cellule A1 n'est pas blanche, nous allons lui attribuer la même couleur que l'onglet en utilisant la ligne :

Sh.Tab.Color = Sh.[a1].Interior.Color 

Il ne reste plus qu’à modifier l’évènement SheetChange pour appeler cette macro à la place de changerCouleur :

Private Sub Workbook_SheetChange(ByVal  Sh As Object, ByVal Target As Range)
    changerCouleurViaCouleurCellule
End Sub

 



Articles qui pourraient vous intéresser

Comment regrouper (ou pas !) les dates d’un tableau croisé dynamique (TCD) sur Excel ?
Comment connecter Excel sur Internet, sans VBA ?
Comment traduire automatiquement des fonctions Excel dans leur version originale ?
Comment analyser les résultats d’un sondage ou questionnaire avec Excel ?
Comment utiliser la fonction SOMME.SI pour effectuer des recherches sur des textes sur Excel ?
Comment calculer et étudier des écarts budgétaires avec Excel ?
Comment verrouiller et protéger un objet (graphique, image, zone de texte…) sur Excel ?
Comment formater des dates correctement dans Excel ?
Comment protéger le formatage des cellules tout en autorisant la saisie de données dans Excel ?
Comment transformer une photo en tableau Excel ?
Comment créer un publipostage automatique avec Excel ? (sans Word !)
Comment créer un graphique Gaufre sur Excel ?

Contact - Plan du site - À propos - Contact

© Excelformation.fr 2018-2024 - Excel, simplement

Haut de la page

Excelformation.fr propose de nombreuses formations pratiques et gratuites sur Microsoft Excel : des cours pour apprendre à structurer et analyser les données, des tutos sur les fonctions avancées, les formules et les formules avancées d'Excel, les formules matricielles, les mise-en-formes conditionnelles, les graphiques Excel (xls, xlsx, xlsm,…). Des tutoriels pour apprendre à automatiser les tâches répétitives (via des macro-commandes en VBA) de vos classeurs Excel.