Colorer une ligne suivant valeur VBA EXCEL
Résolu
tito23
Messages postés
305
Date d'inscription
mardi 10 août 2010
Statut
Membre
Dernière intervention
16 janvier 2013
-
23 mai 2012 à 11:27
tito23 Messages postés 305 Date d'inscription mardi 10 août 2010 Statut Membre Dernière intervention 16 janvier 2013 - 23 mai 2012 à 12:46
tito23 Messages postés 305 Date d'inscription mardi 10 août 2010 Statut Membre Dernière intervention 16 janvier 2013 - 23 mai 2012 à 12:46
A voir également:
- Colorer une ligne suivant valeur VBA EXCEL
- Aller à la ligne excel - Guide
- Liste déroulante excel - Guide
- Déplacer une colonne excel - Guide
- Partager photos en ligne - Guide
- Excel colorer une cellule si - Guide
3 réponses
lermite222
Messages postés
8724
Date d'inscription
dimanche 8 avril 2007
Statut
Contributeur
Dernière intervention
22 janvier 2020
1 191
Modifié par lermite222 le 23/05/2012 à 12:25
Modifié par lermite222 le 23/05/2012 à 12:25
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.
michel_m
Messages postés
16602
Date d'inscription
lundi 12 septembre 2005
Statut
Contributeur
Dernière intervention
16 décembre 2023
3 313
23 mai 2012 à 11:31
23 mai 2012 à 11:31
Bonjour
pas de valeur donnée à la variable "lig"
pas de valeur donnée à la variable "lig"
tito23
Messages postés
305
Date d'inscription
mardi 10 août 2010
Statut
Membre
Dernière intervention
16 janvier 2013
4
23 mai 2012 à 11:44
23 mai 2012 à 11:44
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
michel_m
Messages postés
16602
Date d'inscription
lundi 12 septembre 2005
Statut
Contributeur
Dernière intervention
16 décembre 2023
3 313
23 mai 2012 à 11:54
23 mai 2012 à 11:54
actuellement tu inplémentes les colonnes et non les lignes?
While Cells(5, i) <> ""
tu t'arretes à la 1° colonne vide à partir de la col E
While Cells(5, i) <> ""
tu t'arretes à la 1° colonne vide à partir de la col E
tito23
Messages postés
305
Date d'inscription
mardi 10 août 2010
Statut
Membre
Dernière intervention
16 janvier 2013
4
23 mai 2012 à 12:00
23 mai 2012 à 12:00
Cells(5,i) c'est pas la cellule qui est à la colonne E et la ligne i?
michel_m
Messages postés
16602
Date d'inscription
lundi 12 septembre 2005
Statut
Contributeur
Dernière intervention
16 décembre 2023
3 313
23 mai 2012 à 12:05
23 mai 2012 à 12:05
non
la syntaxe est cells(ligne,colonne)
si c'est ton erreur tu n'as pas besoin d'une double définition "i" et "lig" garde en 1 seule
la syntaxe est cells(ligne,colonne)
si c'est ton erreur tu n'as pas besoin d'une double définition "i" et "lig" garde en 1 seule
tito23
Messages postés
305
Date d'inscription
mardi 10 août 2010
Statut
Membre
Dernière intervention
16 janvier 2013
4
Modifié par tito23 le 23/05/2012 à 12:47
Modifié par tito23 le 23/05/2012 à 12:47
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