Macro pour colorier des lignes
ssboo
Messages postés
18
Statut
Membre
-
michel_m Messages postés 18903 Date d'inscription Statut Contributeur Dernière intervention -
michel_m Messages postés 18903 Date d'inscription Statut Contributeur Dernière intervention -
Bonjour à tous,
Je suis débutant dans VBA et j'essaie d'avoir une macro qui m'attribue des couleurs aux lignes suivant la valeur de la colonne "B" (voir fichier joint)
J'ai trouvé la Macro ci-dessous que j'ai un peu modifié mais le problème c'est qu'elle ne veut pas s'exécuter !!, d'après ce que j'ai compris elle utilise la mise en forme conditionnelle.
Voilà la macro:
Private Sub Worksheet_Change(ByVal Target As Range)
Dim Derlig As Long, X As Long
With Worksheets("Feuil1")
Application.ScreenUpdating = False
Derlig = .Range("B" & Rows.Count).End(xlUp).Row
For X = Derlig To 2 Step -1
If Not Intersect(["B", X], Target) Is Nothing And Target.Count = 1 Then
p = Application.Match(Target, [couleurs], 0)
If Not IsError(p) Then
Range(Target.Offset(0, -3), Target.Offset(0, 4)).Interior.ColorIndex = Range("couleurs")(p).Interior.ColorIndex
End If
End If
Next X
End With
End Sub
Je vous met une exemple de fichier que je dois traiter : https://www.cjoint.com/?0Gckeyn2JM7
Merci d'avance pour votre aide.
Je suis débutant dans VBA et j'essaie d'avoir une macro qui m'attribue des couleurs aux lignes suivant la valeur de la colonne "B" (voir fichier joint)
J'ai trouvé la Macro ci-dessous que j'ai un peu modifié mais le problème c'est qu'elle ne veut pas s'exécuter !!, d'après ce que j'ai compris elle utilise la mise en forme conditionnelle.
Voilà la macro:
Private Sub Worksheet_Change(ByVal Target As Range)
Dim Derlig As Long, X As Long
With Worksheets("Feuil1")
Application.ScreenUpdating = False
Derlig = .Range("B" & Rows.Count).End(xlUp).Row
For X = Derlig To 2 Step -1
If Not Intersect(["B", X], Target) Is Nothing And Target.Count = 1 Then
p = Application.Match(Target, [couleurs], 0)
If Not IsError(p) Then
Range(Target.Offset(0, -3), Target.Offset(0, 4)).Interior.ColorIndex = Range("couleurs")(p).Interior.ColorIndex
End If
End If
Next X
End With
End Sub
Je vous met une exemple de fichier que je dois traiter : https://www.cjoint.com/?0Gckeyn2JM7
Merci d'avance pour votre aide.
A voir également:
- Macro pour colorier des lignes
- Telecharger macro convertir chiffre en lettre excel - Télécharger - Tableur
- Partager des photos en ligne - Guide
- Télécharger macro convertir chiffre en lettre excel - Télécharger - Tableur
- Jitbit macro recorder - Télécharger - Confidentialité
- Écrire plusieurs lignes dans une cellule excel mac - Guide
2 réponses
Bonjour,
Pourquoi fais tu une boucle puisque à chaque donnée saisie colonne B l'événement worksheet.change te mettra la couleur désirée ?
Pourquoi fais tu une boucle puisque à chaque donnée saisie colonne B l'événement worksheet.change te mettra la couleur désirée ?
Bonjour Michel,
Si j'ai rajouté une boucle c'était sûrement parce que je ne connais pas très bien ce type de macro
Je voulais aussi te remercier pour ta réponse, mais j'ai juste un dernier problème !
Quand j'essaie de l'exécuter, elle me sors l'onglet pour enregistrer une nouvelle Macro !! du coup elle n'applique pas les modifications ! je ne comprends pas d'où vient ce problème.
Merci encore
Si j'ai rajouté une boucle c'était sûrement parce que je ne connais pas très bien ce type de macro
Je voulais aussi te remercier pour ta réponse, mais j'ai juste un dernier problème !
Quand j'essaie de l'exécuter, elle me sors l'onglet pour enregistrer une nouvelle Macro !! du coup elle n'applique pas les modifications ! je ne comprends pas d'où vient ce problème.
Merci encore
une macro événementielle doit être installée dans le module "feuil" ou tu désires travailler
pour accéder
clic droit sur le nom d'onglet
visualiser le code
ou dans l'éditeur VBA (alt+F11) sélectionnes le module
ci joint ta pièce jointe
https://www.cjoint.com/?3Gcn4ovMJnL
pour apprendre le VBA
site:
http://www.info-3000.com/
très sympa et pédagogique
à lire
https://bidou.developpez.com/article/VBA/
très complet pour initier mais ca ne se lit pas comme un roman policier :o)
pour accéder
clic droit sur le nom d'onglet
visualiser le code
ou dans l'éditeur VBA (alt+F11) sélectionnes le module
ci joint ta pièce jointe
https://www.cjoint.com/?3Gcn4ovMJnL
pour apprendre le VBA
site:
http://www.info-3000.com/
très sympa et pédagogique
à lire
https://bidou.developpez.com/article/VBA/
très complet pour initier mais ca ne se lit pas comme un roman policier :o)
Option Explicit Private Sub Worksheet_Change(ByVal Target As Range) Dim Derlig As Long, Lig As Byte, Col As Byte, Coloris As Range Application.ScreenUpdating = False Derlig = Range("B" & Rows.Count).End(xlUp).Row With Range("couleurs") Col = .Column Lig = .Row End With If Not Intersect(Target, Range("B2:B" & Derlig)) Is Nothing And Target.Count = 1 Then If Application.CountIf(Range("couleurs"), Target) = 1 Then Set Coloris = Columns(Col).Find(Target, Cells(Lig - 1, Col), xlValues) Range(Cells(Target.Row, "A"), Cells(Target.Row, "C")).Interior.ColorIndex = _ Coloris.Interior.ColorIndex End If End If End Sub