[VIDEO] Comment sélectionner les cellules de même couleur

Dans ce tutoriel, nous allons voir comment grâce à une macro-commande développée en VBA nous allons pouvoir sélectionner un ensemble de cellules dont la couleur de fond correspond à une couleur spécifique.

 

Pour suivre cet article dans les meilleures conditions, je vous invite à télécharger le fichier dans le lien disponible en fin d’article (cliquez ici pour y accéder).

 

 

1. Préparation de la feuille de calcul

 

Pour commencer nous allons affecter des couleurs à un certain nombre de cellules (couleur que nous allons sélectionner de manière aléatoire).

Excel formation - video comment slectionner les cellules de mme couleur

Nos cellules possèdent désormais une couleur de fond. L’objectif à présent est que lorsque nous sélectionnons n’importe laquelle de ces cellules, automatiquement et de manière instantanée, Excel sélectionne l'ensemble des autres cellules dont la couleur de fond est strictement identique à la cellule sélectionnée.

Excel formation - video comment slectionner les cellules de mme couleur

Pour cela nous allons développer une macro-commande très simple en VBA.

 

2. Un peu VBA

 

Les macro-commandes sont à saisir dans l’outil de développement d’Excel qui s’affiche en cliquant sur le bouton « Visual Basic » disponible dans l’onglet « Développeur » du ruban d’Excel.

Si l’onglet développeurs n’est pas affiché :

  • Rendez-vous dans l'onglet « Fichier »,
  • Sélectionnez « Option »,
  • Dans la partie « Personnaliser le ruban », vérifiez que l'option « Développeur » est bien cochée, si ce n'est pas le cas cochée la, puis validez en cliquant sur le bouton [Ok].

Excel formation - video comment slectionner les cellules de mme couleur

Une fois l'onglet « Développeur » affiché, nous pouvons cliquer sur le bouton « Visual basic » afin d'ouvrir l'outil de développement de Microsoft Excel, qui va nous permettre de créer notre macro.

Excel formation - video comment slectionner les cellules de mme couleur

Après nous être assuré que nous nous trouvons bien dans le bon classeur (en regardant le nom du fichier en haut de la fenêtre : « Excelformation.fr - sélectionner une cellule par rapport à sa couleur.xlsm »), nous pouvons insérer un nouveau module. Dans ce module nous allons pouvoir saisir notre code, dans une nouvelle procédure que nous allons appeler « selectionCelluleParCouleur » :

Excel formation - video comment slectionner les cellules de mme couleur

Sub selectionCelluleParCouleur()   
End Sub

 

La première chose qui va nous intéresser ici c'est donc de connaître la couleur de fond de la cellule sélectionnée. Nous allons donc créer une nouvelle variable que nous allons appeler « couleur » et qui va être de type « long » (c’est-à-dire un nombre entier qui va pouvoir prendre une grande valeur). Puis nous allons donner pour valeur à cette variable le numéro qui correspond à la couleur du fond de la cellule sélectionnée

 

Sub selectionCelluleParCouleur()

    Dim couleur As Long
    couleur = ActiveCell.Interior.Color

End Sub

Où :

  • ActiveCell : correspond à la cellule sélectionnée,
  • ActiveCell.Interior.Color : permet de récupérer la couleur du fond de la première cellule sélectionnée (il s’agit d’un numéro de série de 0 pour le noir à 16777215 pour le blanc)

Note : nous utilisons ici Activecell plutôt que « Selection » afin de ne récupérer la couleur du fond que de la première cellule sélectionnée. En effet, si plusieurs cellules étaient sélectionnées, l’appel à « Selection » nous retournerait l’ensemble des plages sélectionnées. Il faudrait alors utiliser la propriété « selection.Cells(1,1) » pour ne s’occuper que de la première cellule.

Maintenant que nous connaissons et avons stocké la couleur de fond dans une variable, nous allons passer en revue chacune des cellules qui ont été utilisées dans la feuille de calcul grâce à l'instruction « ActiveSheet.UsedRange », afin de regarder pour chacune de ces cellules quelle est la couleur de fond.

Ensuite nous allons créer une nouvelle variable qui cette fois sera de type « range » (c’est-à-dire une plage de cellules) que nous allons appeler « plage » et dans laquelle nous viendrons stocker l'ensemble des cellules dont le fond correspond au fond de la cellule sélectionné.

 

Sub selectionCelluleParCouleur()

    Dim couleur As Long
    couleur = ActiveCell.Interior.Color

    Dim plage As Range
    Set plage = ActiveCell                             ' 1

    For Each c In ActiveSheet.UsedRange                ' 2
        If c.Interior.Color = couleur Then             ' 3
            Set plage = Application.Union(plage, c)    ' 4
        End If
    Next

    plage.Select                                       ' 5

End Sub

Où :

  • 1 : La première cellule que nous allons affecter à notre variable « plage » est la cellule active. De cette manière pour ajouter de nouvelles cellules, nous pourrons simplement utiliser l’instruction « Union » qui se charge de fusionner des plages de cellules les unes aux autres.
  • 2 : Ensuite nous allons passer en revue l'ensemble des cellules qui sont utilisées dans notre feuille de calcul,
  • 3 : Nous regardons si le fond de la cellule correspond à la couleur stockée dans la variable « couleur »,
  • 4 : Si tel est le cas, alors nous ajoutons cette cellule dans la plage « plage »,
  • 5 : Enfin, nous sélectionnons chacune des cellules de cette plage

Excel formation - video comment slectionner les cellules de mme couleur

3. Tester la macro

 

Et voilà, nous en avons terminé avec notre code, nous allons pouvoir revenir à notre feuille de calcul afin de tester notre macro-commande.

Pour tester depuis la feuille de calcul :

  • Commençons par sélectionner une cellule qui possède un fond de couleur,
  • Appuyons sur les touches [Alt] + [F8] du clavier pour lancer le menu de sélection de macro,

Excel formation - video comment slectionner les cellules de mme couleur

  • Double-cliquons sur la macro « selectionCelluleParCouleur »,
  • Il ne nous reste plus qu’à regarder effectuer comme par magie le travail que nous lui avons demandé !

Excel formation - video comment slectionner les cellules de mme couleur

 

Pour permettre une exécution encore plus rapide et surtout plus pratique de cette macro, nous pouvons également créer un bouton :

  • Dans l’onglet « Insertion » du ruban, nous allons sélectionner le menu « Illustration » > « Forme »,
  • Puis nous allons sélectionner une forme, par exemple la forme « Rectangle »,

Excel formation - video comment slectionner les cellules de mme couleur

  • Nous traçons notre rectangle sur la feuille de calcul,
  • Clic-droit sur le rectangle pour modifier le texte : « Sélection par couleur »,

Excel formation - video comment slectionner les cellules de mme couleur

  • À nouveau un clic-droit sur le rectangle, puis « affecter une macro », dans le menu qui s’affiche nous pouvons sélectionner la macro « selectionCelluleParCouleur »,

Excel formation - video comment slectionner les cellules de mme couleur

  • Et ensuite nous allons sélectionner une cellule qui contient la couleur de fond qui nous intéresse, puis enfin cliquer sur le bouton que nous venons d’insérer

Télécharger le fichier d'exemple

 

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

 



Articles qui pourraient vous intéresser

Comment empêcher la suppression ou la modification des cellules sur Excel

Comment créer un formulaire de saisie intégré dans une feuille de calcul sur Excel

Calculer la racine n-ième d’un nombre sur Excel

Comment synthétiser les informations sur Excel : le mode plan

Commentaires

Christophe Mahiout commented

Merci pour ce tutoriel. Il ne marche malheureusement pas si la couleur de la cellule est liée à une mise en forme conditionnelle.

Excelformation.fr commented

Bonjour, pas de soucis, il suffit de remplacer la ligne qui s'occupe de tester la couleur de fond "If c.Interior.Color = couleur Then" par : "If c.DisplayFormat.Interior.Color = couleur Then". L'instruction DisplayFormat permet de tester la couleur du fond réellement rendue à l'écran. À bientôt

Poster un commentaire

Pseudo
Commentaire

Contact - Plan du site - À propos - Contact

© Excel-Formation 2018 - 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.