formateur informatique

Colorier la ligne et la colonne du clic en VBA Excel

Accueil  >  Bureautique  >  Excel  >  Excel VBA  >  Colorier la ligne et la colonne du clic en VBA Excel
Livres à télécharger


Pour partager cette vidéo sur les réseaux sociaux ou sur un site, voici son url :


Inscription Newsletter    Abonner à Youtube    Vidéos astuces Instagram
Sujets que vous pourriez aussi aimer :


Couleurs aux croisements

Nous l'avons déjà compris, le VBA Excel est capable de gérer de nombreux événements de feuilles. Ici, nous allons en profiter pour mettre instantanément en lumière les données attachées à la cellule cliquée par l'utilisateur.

Colorier la ligne et la colonne de la cellule cliquée dans un tableau Excel en VBA

Sur l'exemple illustré par la capture, l'utilisateur clique sur une cellule à mettre en évidence. Instantanément, le code VBA intercepte l'action et se charge de colorier l'intégralité de sa ligne et de sa colonne.

Classeur Excel à télécharger
Pour la mise en place de cette astuce, nous proposons d'agir à partir d'un tableau offrant de nombreuses données intéressantes à croiser. Nous découvrons un tableau recensant des activités de sorties dans différents départements. Il s'étend entre les colonnes B et F et sur plusieurs centaines de lignes.

Changement de sélection en VBA
Pour matérialiser ces lignes croisées et colorées, nous devons commencer par gérer l'action du clic de l'utilisateur dans n'importe laquelle des cellules de la feuille. Et pour cela, le VBA Excel offre un événement tout à fait dédié.
  • 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 Feuil1 (Id2Sorties),
Ainsi, nous affichons au centre de l'écran, la feuille de code VBA associée à la feuille du tableau.
  • En haut de cette feuille de code, déployer la liste déroulante de gauche,
  • Dans les propositions, choisir l'objet Worksheet,
Cet objet désigne une feuille, en l'occurrence ici la feuille active.

Procédure VBA au changement de sélection de la feuille Excel

Cette action a pour effet de créer la procédure événementielle Worksheet_SelectionChange. C'est elle qui déclenchera un code VBA au clic dans une nouvelle cellule de la feuille Excel associée. C'est donc elle qui doit se charger d'illuminer la ligne et la colonne de la cellule cliquée. A ce titre, vous notez la présence de l'objet Target transmis en paramètre de la procédure. Il désigne la cellule cliquée. Nous allons donc l'exploiter pour pointer sur sa ligne et sur sa colonne.

Réinitialiser les couleurs
Avant de penser à colorier les rangées qui croisent la cellule cliquée, nous devons réinitialiser les couleurs potentiellement générées au croisement d'une précédente cellule. En l'absence de cette action préliminaire, les couleurs se cumuleraient à chaque nouveau clic.
  • Dans les bornes de la procédure événementielle, ajouter l'instruction VBA suivante :
...
Cells.Interior.ThemeColor = xlThemeColorDark2
...


L'objet Cells, en l'absence de paramètres transmis, représente la collection des cellules de la feuille. En d'autres termes, il désigne toutes les cellules de la feuille active. C'est grâce à lui que nous allons pouvoir influer sur la couleur d'arrière-plan de toutes les cellules, sans exception. Donc, les précédentes potentielles rangées croisées seront incluses dans cette réinitialisation. Sa propriété Interior désigne le fond des cellules. Grâce à elle, nous atteignons sa propriété enfant ThemeColor que nous réglons sur la valeur xlThemeColorDark2. Ce thème applique une couleur de fond gris clair à l'ensemble des cellules. Il s'agit bien sûr du thème en vigueur par défaut sur cette feuille.

Regrouper les actions
Deux actions doivent maintenant intervenir pour changer l'aspect de la ligne et de la colonne de la cellule cliquée. Et rappelons-le, c'est l'objet Target qui représente cette dernière. Plutôt que de répéter cet objet à deux reprises, nous proposons d'optimiser le code avec un bloc With comme nous l'avons enseigné à maintes reprises. Dans ce bloc, nous pourrons ensuite énumérer les propriétés à affecter.
  • A la suite du code VBA, créer le bloc With suivant :
...
With Target

End With
...


Colorier la ligne et la colonne
Maintenant, nous avons tout pouvoir pour agir sur cette cellule (Target) et ses dépendances.
  • Dans le bloc With, ajouter les deux instructions VBA suivantes :
...
.EntireRow.Interior.Color = RGB(222, 225, 2)
.EntireColumn.Interior.Color = RGB(254, 179, 0)
...


Ce sont les propriétés respectives EntireRow et EntireColumn qui désignent la ligne et la colonne entières de la cellule cliquée, représentée par l'objet Target. Dès lors, nous descendons de nouveau jusqu'à la propriété Interior pour influer sur le remplissage. Mais cette fois, il n'est pas question de thème. Nous exploitons la fonction VBA RGB pour définir les composantes des couleurs à affecter à la propriété enfant Color. C'est ainsi que nous choisissons un fond jaune pour la ligne et un fond orange pour la colonne.

Le développement est déjà terminé. Il ne nous reste plus qu'à tester.
  • Enregistrer les modifications (CTRL + S) et basculer sur la feuille Excel (ALT + Tab),
  • Dès lors, réaliser des clics successifs dans des cellules du tableau à illuminer,
Colorier la ligne et la colonne de la cellule cliquée dans un tableau Excel, en VBA

Désormais, à chaque clic dans une nouvelle cellule, en même temps que les précédentes couleurs sont réinitialisées grâce à l'objet VBA Cells, la ligne et la colonne de la nouvelle intersection sont parfaitement mises en lumière dans les couleurs que nous avons choisies.

 
Sur Facebook
Sur Youtube
Les livres
Contact
Mentions légales



Abonnement à la chaîne Youtube
Partager la formation
Partager sur Facebook
Partager sur Twitter
Partager sur LinkedIn