Masquer ligne contenant une cellule de couleur

laviateur -  
 laviateur -
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

  1. via55 Messages postés 14393 Date d'inscription   Statut Membre Dernière intervention   2 759
     
    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
    1. laviateur
       
      Bonjour,
      Merci pour ta réponse rapide via55.
      J'ai réalisé les modifications, seulement toujours rien.
      Cdlmt
      0
    2. via55 Messages postés 14393 Date d'inscription   Statut Membre Dernière intervention   2 759 > laviateur
       
      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
    3. laviateur
       
      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
    4. via55 Messages postés 14393 Date d'inscription   Statut Membre Dernière intervention   2 759 > laviateur
       
      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
    5. laviateur
       
      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