VBA : code pour colorer les cellules
Résolu
la_fouine_du_13
Messages postés
16
Statut
Membre
-
ccm81 Messages postés 11033 Statut Membre -
ccm81 Messages postés 11033 Statut Membre -
Bonjour,
J'essaye d'élaborer un code selon la valeur insérée dans la cellule.
Je connais la colonne (E) mais le nombre de ligne est variable
Mon code ne fonctionne pas et je ne trouve aucune solution
Si la valeur est A on a telle couleur et si c'est B c'est une autre couleur
merci d'avance
--
La chute n'est pas un échec, l'échec est de rester où l'on est tombé
J'essaye d'élaborer un code selon la valeur insérée dans la cellule.
Je connais la colonne (E) mais le nombre de ligne est variable
Mon code ne fonctionne pas et je ne trouve aucune solution
Si la valeur est A on a telle couleur et si c'est B c'est une autre couleur
Sub colorer()
Dim fin As Long
fin = Range("E" & Rows.Count).End(xlUp).Row
Select Case Cells(fin, 5).Value
Case Is = "A"
Cells(fin, 5).Interior.ColorIndex = 28
Case Is = "B"
Cells(fin, 5).Interior.ColorIndex = 45
End Select
End Sub
merci d'avance
--
La chute n'est pas un échec, l'échec est de rester où l'on est tombé
6 réponses
-
comme çà?
Const col = "D" Sub colorer() Dim fin As Long, li As Long Dim v fin = Range(col & Rows.Count).End(xlUp).Row v = Range(col & fin).Value For li = 1 To fin If Range(col & li) <> "" Then Select Case v Case "A": Range(col & li).Interior.ColorIndex = 28 Case "B": Range(col & li).Interior.ColorIndex = 45 End Select End If Next li End Sub -
bonjour
ton code fonctionne très bien
de la façon suivante (voir ta demande)
à l'appel de la macro
si la dernière cellule non vide de la colonne E est "A" couleur bleue
si la dernière cellule non vide de la colonne E est "B" couleur orange
bonne suite -
-
1. pour colorer toutes les lignes de la colonne E
Sub colorer() Dim fin As Long Dim plage As String fin = Range("E" & Rows.Count).End(xlUp).Row plage = "E1:E" & fin Select Case Cells(fin, 5).Value Case "A": Range(plage).Interior.ColorIndex = 28 Case "B": Range(plage).Interior.ColorIndex = 45 End Select End Sub
2. pour colorer les deux dernières lignes de la colonne E
remplcer la définition de la plage parplage = "E" & fin - 1 & ":E" & fin
3. autre ?
bonne suite-
ça me colore toute la colonne sans distinction de case vide pleine avec telle ou telle valeur
Sub colorer() Dim fin As Long Dim plage As String fin = Range("D" & Rows.Count).End(xlUp).Row plage = "D1:D" & fin Select Case Cells(fin, 4).Value Case "A": Range(plage).Interior.ColorIndex = 28 Case "B": Range(plage).Interior.ColorIndex = 45 End Select End Sub -
-
-
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question -
on va finir par y arriver
Const col = "D" Sub colorer() Dim fin As Long, li As Long Dim v fin = Range(col & Rows.Count).End(xlUp).Row For li = 1 To fin v = Range(col & li).Value Select Case v Case "A": Range(col & li).Interior.ColorIndex = 28 Case "B": Range(col & li).Interior.ColorIndex = 45 Case Else: Range(col & li).Interior.ColorIndex = xlNone End Select Next li End Sub
RQ. si c'est ce que tu voulais, pas besoin de VBA pour faire ça, une mise en forme conditionnelle suffisait
bonne suite -
exactement, et est ce que ça te convient?
sinon, il te faut expliquer plus précisément ce que tu veux-
je l'ai mis dans un bouton VBA mais ça ne marche pas
Sub colorer() Dim fin As Long Dim li As Long Dim v Const col = "D" fin = Range(col & Rows.Count).End(xlUp).Row v = Range(col & fin).Value For li = 1 To fin If Range(col & li) <> "" Then Select Case v Case "A": Range(col & li).Interior.ColorIndex = 28 Case "B": Range(col & li).Interior.ColorIndex = 45 End Select End If Next li End Sub -
-