Colorer une ligne suivant valeur VBA EXCEL
Résolu
tito23
Messages postés
318
Statut
Membre
-
tito23 Messages postés 318 Statut Membre -
tito23 Messages postés 318 Statut Membre -
Bonjour,
Je voudrais colorer une ligne ou bien un ensemble de cellules d'une ligne suivant la valeur d'une cellule d'un colonne, j'ai fait ceci
Lorsque je clique sur "exécuter", j'ai l'erreur d'exécution 1004 'Erreur définie par l'application ou par l'objet',
Et merci d'avance
Je voudrais colorer une ligne ou bien un ensemble de cellules d'une ligne suivant la valeur d'une cellule d'un colonne, j'ai fait ceci
Private Sub colorer() Dim i As Integer Dim plage As Range Set plage = Range(Cells(lig, 2), Cells(lig, 5)) i = 6 While Cells(5, i) <> "" Select Case Range("E" & i) Case Is = "Sandbox" plage.Interior.ColorIndex = 19 'Jaune pâle pour "En attente" Case Is = "Delivery" plage.Interior.ColorIndex = 27 'Jaune foncé pour "Déclinée" Case Is = "Factory" plage.Interior.ColorIndex = 3 'Rouge pour "Perdue" Case Else plage.Interior.ColorIndex = -4142 ' enlève la couleur End Select i = i + 1 Wend End Sub
Lorsque je clique sur "exécuter", j'ai l'erreur d'exécution 1004 'Erreur définie par l'application ou par l'objet',
Et merci d'avance
A voir également:
- Colorer une ligne suivant valeur VBA EXCEL
- Liste déroulante excel - Guide
- Aller à la ligne excel - Guide
- Déplacer une colonne excel - Guide
- Partager photos en ligne - Guide
- Word et excel gratuit - Guide
3 réponses
Bonjour,
Un peu optimiser..
A+
Si tu te cognes à un pot et que ça sonne creux, c'est pas forcément le pot qui est vide. ;-)(Confucius)
NOTE : Je ne répond pas aux MP pour les questions techniques.
Un peu optimiser..
Private Sub colorer() Dim lig As Long, N As Integer With Sheets("Feuil1") For lig = 6 To .Range("E6").End(xlDown).Row Select Case .Range("E" & lig) Case Is = "Sandbox": N = 19 'Jaune pâle pour "En attente" Case Is = "Delivery": N = 27 'Jaune foncé pour "Déclinée" Case Is = "Factory": N = 3 'Rouge pour "Perdue" Case Else: N = -4142 ' enlève la couleur End Select .Range(Cells(lig, 2), Cells(lig, 5)).Interior.ColorIndex = N Next lig End With End Sub
A+
Si tu te cognes à un pot et que ça sonne creux, c'est pas forcément le pot qui est vide. ;-)(Confucius)
NOTE : Je ne répond pas aux MP pour les questions techniques.
Bonjour
pas de valeur donnée à la variable "lig"
pas de valeur donnée à la variable "lig"
Merci de ta réponse, j'ai fait comme ceci, pas d'erreur mais pas de coloration pour les lignes
Private Sub colorer() ThisWorkbook.Activate Dim i As Integer Dim plage As Range Dim lig As Byte With Sheets("Feuil1") i = 6 While Cells(5, i) <> "" lig = Cells(5, i).Row Set plage = .Range(Cells(lig, 2), Cells(lig, 5)) Select Case .Range("E" & i) Case Is = "Sandbox" plage.Interior.ColorIndex = 19 'Jaune pâle pour "En attente" Case Is = "Delivery" plage.Interior.ColorIndex = 27 'Jaune foncé pour "Déclinée" Case Is = "Factory" plage.Interior.ColorIndex = 3 'Rouge pour "Perdue" Case Else plage.Interior.ColorIndex = -4142 ' enlève la couleur End Select i = i + 1 Wend End With End Sub
Merci pour ton aide, le problème est résolu, j'ai comme ça
Merci de changer le problème en résolu quand vous trouvez une solution
Sub Worksheet_Change(ByVal Target As Range) Dim i As Integer Dim plage As Range Dim lig As Byte With Sheets("Feuil1") i = 6 While i < 50 'Cells(5, i) <> "" And lig = i Set plage = .Range(Cells(lig, 2), Cells(lig, 5)) Select Case .Range("E" & i).Value Case Is = "Sandbox" plage.Interior.ColorIndex = 19 'Jaune pâle pour "En attente" Case Is = "Delivery" plage.Interior.ColorIndex = 27 'Jaune foncé pour "Déclinée" Case Is = "Factory" plage.Interior.ColorIndex = 3 'Rouge pour "Perdue" Case Else plage.Interior.ColorIndex = -4142 ' enlève la couleur End Select i = i + 1 Wend End With End sub
Merci de changer le problème en résolu quand vous trouvez une solution