Colorer une ligne en fonction d'une valeur

  • Initiateur de la discussion Initiateur de la discussion agnes95
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

agnes95

XLDnaute Nouveau
Bonjour à tous jai un pb dans ma macro et je n'arrive pas à le resoudre seul, c'est pas faute d'avoir essayé.

Merci donc de votre aide.

Voici ce que je souhaiterais faire :

En fonction de la valeur mise en colonne I, une coleur vienne remplir toute la ligne correspondant.

Ayant 10 condition, j'ai abandonné la MFC.

Voici ma macro, mais le TARGET.ROW, m'empêche d'aller au dela de la 256 ieme ligne et je ne sais pas pourquoi (J'ai environ 1500 lignes...) :


Private Sub Worksheet_Change(ByVal Target As Range)
Dim lig As Byte, plage As Range

If Intersect(Target, Range("i2:i1500")) Is Nothing Then: Exit Sub

lig = Target.Row

Set plage = Range(Cells(lig, 1), Cells(lig, 14))

Select Case Target
Case Is = "ACAD"
plage.Interior.ColorIndex = 7 'GRIS"
Case Is = "SPRQ"
plage.Interior.Color = 65535 'JAUNE"
Case Is = "RCBA"
plage.Interior.Color = 10040319 'ROSE FUSHIA"
Case Is = "NMRT"
plage.Interior.Color = 16777164 'BLEU CIEL"
Case Is = "CRNI"
plage.Interior.Color = 13434828 'VERT PALE"
Case Is = "JLPR"
plage.Interior.Color = 52479 'ORANGE PALE"
Case Is = "FFTE"
plage.Interior.Color = 16724889 'VIOLET"
Case Is = "MMAO"
plage.Interior.ColorIndex = 31 'BLEU FONCE"
Case Is = "LRUE"
plage.Interior.Color = 16764159 'ROSE PALE"
Case Is = "HSTR"
plage.Interior.Color = 16776960 'BLEU TURQUOISE"
Case Else
plage.Interior.ColorIndex = -4142 ' enlève la couleur
End Select

Set plage = Nothing
End Sub

Par avance merci de vos retour

Bonne journée et merci
 
Re : Colorer une ligne en fonction d'une valeur

Bonjour Agnes,

mais le TARGET.ROW, m'empêche d'aller au dela de la 256 ieme ligne et je ne sais pas pourquoi

ça vient de là :

Code:
Dim lig As Byte

extrait de l'aide VBA

Les variables de type Byte sont stockées sous la forme d'un nombre de 8 bits (1 octet unique), non signé, compris entre 0 et 255.

Le type Long devrait être plus approprié

Edit : Bonjour Philippe, Bonjour Gilbert, 🙂
 
Dernière édition:
Re : Colorer une ligne en fonction d'une valeur

tout d'abord merci de vos reponse,

J'ai changé la macro, ca donne cela :


Private Sub Worksheet_Change(ByVal Target As Range)
Dim lig As Integer, plage As Range

If Intersect(Target, Range("i2:i1000")) Is Nothing Then: Exit Sub

lig = Target.Rows

Set plage = Range(Cells(lig, 1), Cells(lig, 14))

Select Case Target
Case Is = "ACAD"
plage.Interior.ColorIndex = 7 'GRIS"
Case Is = "SPRQ"
plage.Interior.Color = 65535 'JAUNE"
Case Is = "RCBA"
plage.Interior.Color = 10040319 'ROSE FUSHIA"
Case Is = "NMRT"
plage.Interior.Color = 16777164 'BLEU CIEL"
Case Is = "CRNI"
plage.Interior.Color = 13434828 'VERT PALE"
Case Is = "JLPR"
plage.Interior.Color = 52479 'ORANGE PALE"
Case Is = "FFTE"
plage.Interior.Color = 16724889 'VIOLET"
Case Is = "MMAO"
plage.Interior.ColorIndex = 31 'BLEU FONCE"
Case Is = "LRUE"
plage.Interior.Color = 16764159 'ROSE PALE"
Case Is = "HSTR"
plage.Interior.Color = 16776960 'BLEU TURQUOISE"
Case Else
plage.Interior.ColorIndex = -4142 ' enlève la couleur
End Select

Set plage = Nothing
End Sub

Cela ne marche tjrs pas, il me surligne en jaune lig = Target.Rows

Auriez vous une autre solution.?

Merci merci
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

Retour