Masquer ligne contenant une cellule de couleur

Fermé
laviateur - 2 août 2016 à 01:00
 laviateur - 2 août 2016 à 15:21
Bonjour,

Je cherche à masquer les lignes dont le fond est de couleur jaune.
La colonne à tester est en "E" et il y a 994 ligne.
Voici mon code qui ne marche pas...

Sub masquer()
Application.ScreenUpdating = false
Dim i As Long
For i = 994 To 4 Step -1
If Worksheets("Feuil01").Range("E" & i).Interior.ColorIndex = 6 Then Rows(i).EntireRow.Hidden = False
Next i
End Sub

merci pour votre aide.;

1 réponse

via55 Messages postés 14494 Date d'inscription mercredi 16 janvier 2013 Statut Membre Dernière intervention 26 octobre 2024 2 734
2 août 2016 à 01:12
Bonsoir

1) si tu veux masquer les lignes il faut mettre la propriété Hidden à True et non à False

2) Il faut en fin de macro remettre le rafraichissement écran avec :
Application.ScreenUpdating = True

Cdlmnt
Via
1
Bonjour,
Merci pour ta réponse rapide via55.
J'ai réalisé les modifications, seulement toujours rien.
Cdlmt
0
via55 Messages postés 14494 Date d'inscription mercredi 16 janvier 2013 Statut Membre Dernière intervention 26 octobre 2024 2 734 > laviateur
Modifié par via55 le 2/08/2016 à 11:09
Bonjour

Chez moi le code marche parfaitement

Deux possibilités de disfonctionnement :
- la couleur jaune de coloration n'est pas celle de code 6, c'est un autre jaune plus pâle par exemple (tester par macro la code de la couleur d'une cellule jaune avec une ligne comme Msgbox sheets ("Feuil01").Range("E12").Interior.Colorindex
- la couleur provient d'une mise en forme conditionnelle (dans ce cas il faut bâtir la macro non pas sur la couleur mais sur la condition de la MFC mais tu peux aussi alors te passer de macro et rajouter une colonne dans laquelle une formule qui reprend la condition de la MFC met une X et tu appliques ensuite un filtre pour masquer les cellules)

Cdlmnt
Via
0
Bonjour
Merci encore. Effectivement il s'agit d'une condition "recherche de doublon".
Je vais devoir créer une macro pour tester les cellules de la colonne "E" et placer un texte type "Doublon" dans une nouvelle colonne. Ensuite masquer la ligne devrait être facile.
Si tu as sous la main une idée du script merci.
Je regarde ce que je peux créer à mon niveau..
0
via55 Messages postés 14494 Date d'inscription mercredi 16 janvier 2013 Statut Membre Dernière intervention 26 octobre 2024 2 734 > laviateur
Modifié par via55 le 2/08/2016 à 14:24
Re,

Pas besoin de macro, dans une nouvelle colonne tu mets en ligne 1 la formule ;
=NB.SI("$E$1:E1";E1)
qui affichera 2 pour les doublons, 3 pour les triplons etc mais affichera 1 quand la valeur est unique où quand c'est la 1ere rencontrée
Etire ensuite la formule au bas du tableau
Il ne te restera qu'à filtrer le tableau sur cette colonne en ne gardant que les 1

Cdlmnt
Via
0
Un vrai cauchemar !!! Grace à via55 j'ai réalisé cette formule
=NB.SI(E:E;E929)>1
qui fonctionne, seulement je ne peux toujours pas masquer mes lignes.
la formule :
Application.ScreenUpdating = False
Dim i As Long
For i = 994 To 4 Step -1
If Worksheets("Feuil01").Range("M" & i) = 1 Then Rows(i).EntireRow.Hidden = True
Next i

Application.ScreenUpdating = True

est juste, puisque lorsque je place le chiffre "1" dans une de mes cellules à masquer, tout fonctionne. Le problème est toujours dû fait que le renseignement " provient d'une mise en forme conditionnelle "...
Merci de votre aide
0