Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

Filtrer toutes les lignes dont au moins une cellule possède une telle couleur de fond

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

djodjodjo

XLDnaute Occasionnel
Bonjour à tous,

Aujourd'hui j'aimerais pouvoir ne garder dans un fichier que des lignes "à problème" où des cellules à fond rouge (vous choisirez la valeur RGB de votre choix hein !) apparaissent. Si la ligne ne contient pas de cellule à fond rouge (obtenu après une mise en forme conditionnelle pour info), elle ne doit pas apparaitre.

Je pense que faire un test ligne par ligne, cellule par cellule sur la couleur de fond est trop laborieux. Il faut sûrement utiliser un filtre élaboré (test sur toutes les colonnes) et/ou peut-être Criteria1:=RGB(255, 80, 80), Operator:=xlFilterCellColor (?) mais je n'arrive pas à construire la macro...

Merci d'avance pour votre aide !
 

Pièces jointes

Dernière édition:
Re : Filtrer toutes les lignes dont au moins une cellule possède une telle couleur de

Je précise que c'est la couleur de fond de cellule qui importe, et non sa valeur (ça peut être "e" comme ça aurait pu être "x" ou "154165" ou autre)
 
Re : Filtrer toutes les lignes dont au moins une cellule possède une telle couleur de

Re, salut STephane,

Voyez le fichier joint, les 3 boutons et les 3 macros dans Module1.

Il faut savoir qu'il n'est pas possible (sauf à créer une usine à gaz) de repérer la couleur des cellules colorées par MFC.

On repère les cellules en testant la formule de la MFC. Le test est ici une égalité :

Code:
If Evaluate(Cells(lig, col).FormatConditions(1).Formula1) = Cells(lig, col) Then
A+
 

Pièces jointes

Dernière édition:
Re : Filtrer toutes les lignes dont au moins une cellule possède une telle couleur de

Re,

Si la MFC est définie avec une formule, il faut évaluer (VRAI ou FAUX) cette formule pour chaque cellule.

Et donc sélectionner chaque cellule :

Code:
Cells(lig, col).Select
If Evaluate(ActiveCell.FormatConditions(1).Formula1) Then _
Fichier (2).

A+
 

Pièces jointes

Re : Filtrer toutes les lignes dont au moins une cellule possède une telle couleur de

Re,

Sélectionner les cellules ralentit beaucoup la macro.

On peut l'éviter en faisant une double conversion de la formule :

Code:
F = Cells(lig, col).FormatConditions(1).Formula1
F = Application.ConvertFormula(F, xlA1, xlR1C1, , ActiveCell)
F = Application.ConvertFormula(F, xlR1C1, xlA1, , Cells(lig, col))
If Evaluate(F) Then...
Fichier (3).

A+
 

Pièces jointes

Re : Filtrer toutes les lignes dont au moins une cellule possède une telle couleur de

Bonjour le fil, le forum,

Avant de partir dans la Dombes, une version (4) plus rapide.

La formule (R1C1) est mémorisée dans FR1C1.

A+
 

Pièces jointes

- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…