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
--
Merci de changer le problème en résolu quand vous trouvez une solution
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
--
Merci de changer le problème en résolu quand vous trouvez une solution
3 réponses
-
Bonjour,
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"-
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
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