Masquer une ligne selon un code de couleur avec VBA

Résolu
Bonjour,

J'ai déjà une macro qui masquer mes lignes sans problème selon une fonction si que j'ai instauré. Voici ma macro :

Sub Masquer_lignes_facturation()
'
   
' pour afficher les lignes
Cells.Select
Selection.EntireRow.Hidden = False
Columns("K:M").Select
Selection.EntireColumn.Hidden = False

' Pour masquer les lignes

Dim Ligne As Integer

For Ligne = 4 To 57
 If Cells(Ligne, 12) = "M" Then
 Rows(Ligne & ":" & Ligne).EntireRow.Hidden = True
 End If
Next

' Pour masquer la colonne L
    Columns("L:L").Select
    Selection.EntireColumn.Hidden = True

End Sub


J'aimerais l'améliorer en lui disant :

For Ligne = 4 To 57
If Cells(Ligne, 12) = "COULEUR GRIS" Then
Rows(Ligne & ":" & Ligne).EntireRow.Hidden = True
End If

Toutefois je ne sais pas comment faire cela...

Merci d'avance

EDIT : Ajout des balises de code (la coloration syntaxique).
Explications disponibles ici : ICI

Merci d'y penser dans tes prochains messages.

2 réponses

  1. Bonsoir chris.lenoir

    Le code :
    For Ligne = 4 To 57
    If Cells(Ligne, 12).Interior.ColorIndex = 16 Then
    Rows(Ligne & ":" & Ligne).EntireRow.Hidden = True
    End If
    Next

    16 étant le code couleur du gris foncé

    Pour autre gris employer le code adéquat

    Cdlmnt
    Via
    "L'imagination est plus importante que le savoir."    A. Einstein
    3
    1. Bonjour,

      merci beaucoup.

      Avez-vous une charte pour les codes de couleur puisque ça ne marche pas mais ça doit seulement être à cause que le gris n'est pas exactement pareil ?

      Merci encore
      0
    2. C'est beau j'ai trouvé ça fonctionne ! Merci beaucoup :)
      0
    3. @christ.lenoirOn la trouve facilement sur le net :

      je joins une image des 56 couleurs à mon premier message
      0
  2. Bonjour

    tu as plusieurs gris dans la palette (codés 15 16, 48)

    Const gris1 = 15
    Const gris2 = 16
    Const gris3 = 48
    
    Sub ok()
    For ligne = 4 To 57
      ' pour le fond
      If Cells(ligne, 12).Interior.ColorIndex = gris1 Then
        Rows(ligne).Hidden = True
      End If
      ' pour la police
      If Cells(ligne, 12).Font.ColorIndex = gris1 Then
        Rows(ligne).Hidden = True
      End If
    Next ligne
    End Sub


    Cdlmnt
    0