Masquer ligne si pas de couleur

bonjour,

je veux masquer ou afficher les lignes sans couleur sur une feuille (ce bouton est présent sur plusieurs feuilles)

mais rien ne se passe :

Sub Masquer_Afficher()
Dim i As Integer

ActiveSheet.Select  '=> pas sur que cela soit efficace ?
Application.ScreenUpdating = False

If Range("AA1") = 1 Then
    For i = 3 To Range("A" & Rows.Count).End(xlUp).Row
        If Range("A" & i).Interior.Color = -4142 Then Range("A" & i).EntireRow.Hidden = True
    Next i
    Range("AA1") = ""
Else
    Cells.EntireRow.Hidden = False
    Range("AA1") = 1
End If

End Sub

Bonjour Philippou, bonjour le forum,

Si j'ai bien compris, ce code s'applique à un bouton qui va masquer si c'est affiché et afficher si c'est masqué.

Si c'est bien ça, essaie comme ça :

Sub Masquer_Afficher()
Dim i As Integer

Application.ScreenUpdating = False
Range("AA1").Value = IIf(Range("AA1").Value = 1, "", 1)
For i = 3 To Range("A" & Rows.Count).End(xlUp).Row
    Rows(i).Hidden = Cells(i, "A").Interior.ColorIndex = xlNone And Range("AA1").Value = 1
Next i
End Sub

ça ne fait rien sur mon classeur, est-ce qu'il faut pas ajouter un active sheet ou autre ?

j'ai modifié IIF par IF et ça me dit une erreur sur cette lignne :

Range("AA1").Value = IIf(Range("AA1").Value = 1, "", 1)

c'est normal IIF ?

Re,

Envoie le fichier on va pas s'en sortir !...

voici la solution, merci Thau thème

Sub Masquer_Afficher()
Dim O As Worksheet
Dim I As Integer
Dim DL As Long

Application.ScreenUpdating = False
Set O = ActiveSheet
DL = O.Cells(Application.Rows.Count, "B").End(xlUp).Row
O.Range("AA1").value = IIf(O.Range("AA1").value = 1, "", 1)
O.Rows.Hidden = False
If O.Range("AA1").value = "" Then Exit Sub
For I = 3 To DL
    O.Rows(I).Hidden = O.Cells(I, "A").Interior.Color = 16777215 And O.Range("AA1").value = 1
Next I
End Sub
Rechercher des sujets similaires à "masquer ligne pas couleur"