colorier une plage

ccpapy

XLDnaute Impliqué
bonjour à tous,
je plante depuis ce matin et je me décide à faire appel à vous.
j'ai un tableau qui va de la colonne A à G
le nombre de ligne = dernière ligne A écrite
j'ai mes macros pour masquer les lignes si elles sont coloriées mais elles ne fonctionnent pas en passant par format conditionnel. je suis donc obligé de le faire par Vba et là est le problème, j'ai réussi pour la ligne entière, je préférerai le faire que pour le tableau.
donc
Comment colorier la ligne correspondante si la cellule ?
G=L1 vert
G=L2 bleu
G=L3 rouge
G='' blanc
merci et bon dimanche à tous
 

Hervé

XLDnaute Barbatruc
Bonjour ccpapy

pas sur d'avoir compris, mais est-ce que ceci te conviendrait ?


Private Sub Worksheet_Change(ByVal Target As Range)
Dim couleur As Integer

If Target.Column = 7 Then
       
Select Case Target
               
Case 'L1': couleur = 4
               
Case 'L2': couleur = 5
               
Case 'L3': couleur = 3
               
Case '': couleur = -4142
       
End Select
       
        Range(Cells(Target.Row, 1), Target).Interior.ColorIndex = couleur
       
End If
End Sub


salut
 

ccpapy

XLDnaute Impliqué
bonjour Hervé,
merci de te pencher sur mon problème. je n'arrive pas avec ta solution. je te joins le fichier pourque tu vois ce que je veux faire.
si il y a plus simple comme code, ne te gène pas :lol:
merci [file name=masquercouleur.zip size=14957]http://www.excel-downloads.com/components/com_simpleboard/uploaded/files/masquercouleur.zip[/file]
 

Pièces jointes

  • masquercouleur.zip
    14.6 KB · Affichages: 59

Dan

XLDnaute Barbatruc
Bonjour,

Je regarde ton fichier afin de répondre à ta demande. Au vu de tes explications je ne suis pas sûr d'avoir compris.

Ce que tu veux faire, c'est :

1. mettre en couleur une ligne entre les colonnes A:G si la colonne G contient 'OK', 'a revoir', .... ?
2. Masquer les lignes en fonction de leur couleur et ce, suivant un choix via un bouton ?

Voici déjà quelque chose à corriger dans ton module 1 pour la couleur rouge. remplace ton code par celui-ci :
Code:
Sub MasqueRouge()
    'Macro par Dan pour ccpapy
    'Macro pour [B]Lien supprimé[/B]
    Dim cel As Range    
    For Each cel In Range('A2:A' & Range('G65536').End(xlUp).Row)
    Select Case cel.Interior.ColorIndex
    Case Is = 3
        cel.EntireRow.Hidden = True
    End Select
    Next
    Range('A1').Select
End Sub
Cette macro cache la ligne si une couleur rouge est trouvée dans une des cellules de ton tableau.
Tu peux adapter cela pour les autres couleurs.

A te lire

Je reviens ce soir pour voir tes commentaires et adapter le code

;)

Message édité par: Dan, à: 29/01/2006 17:30
 

ccpapy

XLDnaute Impliqué
bonjour Dan ;)
quelle difference entre mon code et ton code ?
les 2 fonctionnent (je peux virer exit sub avant end sub)
en fait il me faut colorier la plage A:G c'est tout :unsure: le reste fonctionne déjà...
tu as bien compris
le 1. mettre en couleur une ligne entre les colonnes A:G si la colonne G contient \\'OK\\', \\'a revoir\\',
.... ?


merci à toi
 

Hervé

XLDnaute Barbatruc
Bonsoir papy, dan

en pièce jointe, ton fichier modifié pour le coloriage de la zone.

je me suis permis aussi de simplifier tes codes.

salut [file name=masquercouleur_20060129174450.zip size=11717]http://www.excel-downloads.com/components/com_simpleboard/uploaded/files/masquercouleur_20060129174450.zip[/file]
 

Pièces jointes

  • masquercouleur_20060129174450.zip
    11.4 KB · Affichages: 98

ccpapy

XLDnaute Impliqué
bonsoir à tous,
Hervé, 'Impec'.
c'est vrai que tes codes sont plus simples que les miens. j'ai compris et du coup plus besoin de ma ligne finale qui me servait pour 'afficher tout' avec mon code...
un grand merci.
bonne soirée, amicalement.
 

Discussions similaires

Réponses
3
Affichages
221
Réponses
18
Affichages
1 K
Réponses
11
Affichages
432

Statistiques des forums

Discussions
312 398
Messages
2 088 073
Membres
103 709
dernier inscrit
amin Saadaoui