Masquer une ligne selon un code de couleur avec VBA

Résolu/Fermé
christ.lenoir Messages postés 38 Date d'inscription mardi 6 juin 2017 Statut Membre Dernière intervention 7 septembre 2017 - Modifié le 29 août 2017 à 20:27
via55 Messages postés 14504 Date d'inscription mercredi 16 janvier 2013 Statut Membre Dernière intervention 21 décembre 2024 - 29 août 2017 à 20:33
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.
A voir également:

2 réponses

via55 Messages postés 14504 Date d'inscription mercredi 16 janvier 2013 Statut Membre Dernière intervention 21 décembre 2024 2 738
Modifié le 29 août 2017 à 20:18
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
christ.lenoir Messages postés 38 Date d'inscription mardi 6 juin 2017 Statut Membre Dernière intervention 7 septembre 2017
29 août 2017 à 20:25
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
via55 Messages postés 14504 Date d'inscription mercredi 16 janvier 2013 Statut Membre Dernière intervention 21 décembre 2024 2 738 > christ.lenoir Messages postés 38 Date d'inscription mardi 6 juin 2017 Statut Membre Dernière intervention 7 septembre 2017
29 août 2017 à 20:33
On la trouve facilement sur le net :

je joins une image des 56 couleurs à mon premier message
0
christ.lenoir Messages postés 38 Date d'inscription mardi 6 juin 2017 Statut Membre Dernière intervention 7 septembre 2017
29 août 2017 à 20:28
C'est beau j'ai trouvé ça fonctionne ! Merci beaucoup :)
0
ccm81 Messages postés 10904 Date d'inscription lundi 18 octobre 2010 Statut Membre Dernière intervention 24 décembre 2024 2 428
Modifié le 29 août 2017 à 20:27
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