formateur informatique

Parcourir toutes les cellules sélectionnées en VBA Excel

Accueil  >  Bureautique  >  Excel  >  Excel VBA  >  Parcourir toutes les cellules sélectionnées 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    Vidos astuces Instagram
Sujets que vous pourriez aussi aimer :


Parcourir les cellules sélectionnées

Pour optimiser les traitements sur des tableaux volumineux, il est important de savoir parcourir toutes les cellules sélectionnées en VBA Excel. Et c'est la technique que propose d'offrir cette nouvelle astuce.

Couleurs des cellules en fonction des valeurs avec une boucle VBA Excel

Sur l'exemple illustré par la capture, l'utilisateur sélectionne tous les résultats réalisés par les commerciaux. Puis, il clique sur le bouton Repérer. Aussitôt, des couleurs de repérage sont attribuées en fonction de critères énoncés sous le bouton. Cette signalétique dynamique permet de grandement simplifier l'interprétation des données, à plus forte raison qu'elles sont nombreuses. C'est bien sûr une boucle For Each qui passe les cellules en revue tour à tour, pour les confronter au petit tableau des conditions.

Classeur Excel à télécharger
Pour la démonstration de la technique, nous suggérons d'appuyer l'étude sur un classeur offrant ces chiffres à analyser. Nous retrouvons bien le tableau des commerciaux avec leurs résultats, le bouton d'action sur la droite et la plage de critères juste en-dessous. Ce bouton est déjà associé à une procédure et nous proposons de la constater.
  • Réaliser le raccourci clavier ALT + F11 pour basculer dans l'éditeur VBA Excel,
Nous y découvrons la procédure du même nom que le bouton.

Sub reperer()

End Sub


Elle est écrite dans un module du projet comme le confirme l'explorateur de projet sur la gauche de l'écran.

La variable des cellules
Pour parcourir les cases sélectionnées, nous avons tout d'abord besoin d'une variable représentant ces cellules.
  • Dans les bornes de la procédure reperer, ajouter la déclaration de variable suivante :
Sub reperer()
Dim cellule As Range

End Sub


Un objet de type Range représente une plage de cellules ou à défaut une seule cellule. C'est donc cette variable que nous allons utiliser pour parcourir toutes les cellules de la sélection.

Parcourir les cellules de la sélection
Et pour cela, nous avions déjà démontré la technique à l'occasion d'une formation VBA Excel dédiée. Nous allons enclencher une boucle For Each sur la collection des cellules actives.
  • A la suite du code, ajouter la boucle For Each suivante :
...
For Each cellule In Selection

Next cellule
...


L'objet cellule à gauche de l'instruction est du même type que l'objet Selection à droite de l'instruction. Il représente la collection des cellules sélectionnées. C'est ainsi que nous les parcourons toutes, de la première à la dernière.

Regrouper les propriétés
Pour la suite du traitement, nous allons massivement appeler les propriétés de l'objet cellule pour influer sur les couleurs des cases passées en revue. C'est la raison pour laquelle, nous suggérons d'optimiser le code avec un bloc With.
  • Dans les bornes de la boucle, créer le bloc With suivant :
...
With cellule

End With
...


Grâce à lui, nous allons maintenant pourvoir appeler les propriétés de l'objet cellule sans devoir rappeler son nom à chaque occasion.

Vérifier les conditions
Désormais, il est question de confronter chaque cellule passée en revue par la boucle, aux trois critères numériques associés à des couleurs en cellules F6, F7 et F8. Pour cela, une instruction conditionnelle multiple est nécessaire.
  • Dans le bloc With, créer l'instruction conditionnelle suivante :
...
If (.Value > [F6].Value) Then

ElseIf (.Value > [F7].Value) Then

Else

End If
...


La hiérarchie des critères à vérifier est importante. Nous partons du plus haut pour rejoindre le plus bas. Nous comparons le contenu de chaque cellule passée en revue (.Value) tout d'abord avec la première condition ([F6].Value). Si elle n'est pas vérifiée, alors nous comparons le contenu (.Value) avec la deuxième condition ([F7].Value). Et lorsqu'aucun des deux premiers critères n'est satisfait, nous en déduisons que la cellule répond à la dernière contrainte en F8.

Attribuer les couleurs aux cellules
Maintenant, dans chaque branche de l'instruction conditionnelle, il est simplement question de prélever les attributs de la cellule du critère (Couleur de fond et couleur de police), pour les affecter à la cellule en cours d'analyse par la boucle.
  • Dans les branches de l'instruction If, ajouter les lignes VBA suivantes :
...
If (.Value > [F6].Value) Then
.Interior.Color = [F6].Interior.Color
.Font.Color = [F6].Font.Color

ElseIf (.Value > [F7].Value) Then
.Interior.Color = [F7].Interior.Color
.Font.Color = [F7].Font.Color

Else
.Interior.Color = [F8].Interior.Color
.Font.Color = [F8].Font.Color

End If
...


Grâce à la propriété enfant Color de la propriété Interior de l'objet cellule, nous récupérons la couleur de fond de la cellule (F6, F7 ou F8) qui honore le critère, selon les mêmes propriétés d'objet. Et grâce à la propriété enfant Color de la propriété Font, nous appliquons à l'objet cellule la même couleur de police que celle de la cellule qui honore le critère.

Il est temps de tester le code pour vérifier que nous sommes bien en mesure d'analyser chaque cellule sélectionnée par l'utilisateur.
  • Enregistrer les modifications (CTRL + S) et revenir sur la feuille (ALT + Tab),
  • Sélectionner les données de la troisième colonne du tableau, soit la plage D3:D18,
  • Puis, cliquer sur le bouton Repérer,
Comme vous pouvez l'apprécier, toutes les cellules de la sélection sont effectivement parcourues, en atteste les couleurs qui leurs sont attribuées, eu égard aux tests réalisés sur chacune d'entre elles. Et bien entendu, si vous modifiez un ou plusieurs critères, que vous resélectionnez la plage et que vous recliquez sur le bouton Repérer, les couleurs s'ajustent automatiquement en fonction des nouvelles conditions.

Analyser toutes les cellules de la sélection Excel pour changer les couleurs

 
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