macro pour colorer une cellule si valeur "x" dans une autre.

tim1

XLDnaute Nouveau
bonjour à tous,
ce doit être un pb simple pour vous mais je n'y parviens pas. merci de votre aide.
si b1=1 alors a1 en fond rouge
si b1=2 a1 vert
si b1=3 a1 bleu

avec" incrémentation" dans le code pour suite identique avec b2 et a2; b3et a3; b4 et a4 ect...

cordialement,
tim
 

tototiti2008

XLDnaute Barbatruc
Re : macro pour colorer une cellule si valeur "x" dans une autre.

Bonjour tim1,

sélectionne les cellules de la colonne A concernées

Mise en forme conditionnelle - Gérér les règles - Nouvelle règle - Utiliser une formule
=B1=1

Fond rouge
OK
à répéter pour les 2 autres cas
 

tim1

XLDnaute Nouveau
Re : macro pour colorer une cellule si valeur "x" dans une autre.

la zone de travail qui sera définie (environs 2 colonnes de10 cellules) devra être envoyée sur une autre feuille.
de plus les valeurs apportées dans cette zone changent régulièrement et proviennent elles aussi d'une autre feuille si bien que les formes conditionnelles disparaissent avec les copier-coller.
 

tototiti2008

XLDnaute Barbatruc
Re : macro pour colorer une cellule si valeur "x" dans une autre.

Re,

à mettre dans le code de la feuille concernée

Code:
Private Sub Worksheet_Change(ByVal Target As Range)
Dim Cellule As Range
If Not Application.Intersect(Target, Range("A1:A10")) Is Nothing Then
    For Each Cellule In Target
        If Cellule.Value = 1 Then
            Cellule.Offset(0, 1).Interior.Color = 255
        ElseIf Cellule.Value = 2 Then
            Cellule.Offset(0, 1).Interior.Color = 5296274
        ElseIf Cellule.Value = 3 Then
            Cellule.Offset(0, 1).Interior.Color = 15773696
        End If
    Next Cellule
End If
End Sub
 

tim1

XLDnaute Nouveau
Re : macro pour colorer une cellule si valeur "x" dans une autre.

Sub macro7()
Private Sub Worksheet_Feuil1(ByVal Target As Range)
Dim Cellule As Range
If Not Application.Intersect(Target, Range("E1:E10")) Is Nothing Then
For Each Cellule In Target
If Cellule.Value = 1 Then
Cellule.Offset(0, 1).Interior.color = 255
ElseIf Cellule.Value = 2 Then
Cellule.Offset(0, 1).Interior.color = 5296274
ElseIf Cellule.Value = 3 Then
Cellule.Offset(0, 1).Interior.color = 15773696
End If
Next Cellule
End If
End Sub
'

'
Range("P17").Select
End Sub
 

tototiti2008

XLDnaute Barbatruc
Re : macro pour colorer une cellule si valeur "x" dans une autre.

Re,

le code était à mettre dans la feuille concernée car il s'agit d'un code évènementiel
ça veut dire que dès que tu changes une valeur dans la plage A1:A10, il met les cellules de la colonne B en couleur, sans avoir à cliquer sur un bouton...

donc il ne faut pas entourer le code de

Code:
Sub macro7()
...
'
 
'
Range("P17").Select
End Sub

mets simplement le code dans la feuille (Feuil1 par exemple), change la valeur de la colonne A et regarde si la colonne B change de couleur

Edit : je me rend compte que mon code fait un peu le contraire de ce qui était demandé au départ... j'ai interverti A et B

Le mieux est de mettre ce code dans une feuille vide
tu tapes ensuite 1, 2 ou 3 en colonne A
tu regardes ce que ça donne en colonne B
puis tu m'explique les changements à apporter pour que ça corresponde bien à ton besoin
 
Dernière édition:

tim1

XLDnaute Nouveau
Re : macro pour colorer une cellule si valeur "x" dans une autre.

ok j'ai fait tout ce que tu as dis je suis dans une nouvelle feuille (j'ai copié le code directement sur feuille concernée et non sur module)

mais il ne se passe rien hélas. on ne doit pas être loin pourtant...
 

Discussions similaires

Statistiques des forums

Discussions
312 274
Messages
2 086 703
Membres
103 377
dernier inscrit
fredy45