OVH Cloud OVH Cloud

Mise en forme cellule adjacente

2 réponses
Avatar
Miko
Bonjour,

Je souhaite afficher des cellules en couleur, avec une couleur
diff=E9rente selon le jour de la semaine auquel correspond la date
affich=E9e dans la cellule. J'ai un code que voici, qui met des cellules
en couleur en fonction du num=E9ro du jour, affich=E9 dans la cellule via
une formule JOURSEM().

Sub CouleursJours()
Columns("AE:AE").Select
Dim Target As Range
For Each c In Selection
Select Case c
Case 2
c.Interior.ColorIndex =3D 45
Case 3
c.Interior.ColorIndex =3D 37
Case 4
c.Interior.ColorIndex =3D 35
Case 5
c.Interior.ColorIndex =3D 36
Case 6
c.Interior.ColorIndex =3D 39
End Select
Next
End Sub

Mon probl=E8me est le suivant : ce code colorie dans la bonne couleur la
cellule qui CONTIENT le chiffre correspondant au jour, mais je souhaite
que soit mise en couleur la cellule plac=E9e AVANT celle qui contient le
num=E9ro du jour de la semaine.

Exemple : en B1, j'ai un chiffre 3 (correspondant au mardi). Il se
colorie bien en bleu. Mais je veux colorier A1 en bleu =E9galement si B1
est en bleu, mais si B1 est jaune, je souhaite avoir A1 en jaune bien
s=FBr. Et je souhaite uniquement colorier, car j'ai des mises en forme
diff=E9rentes selon les cellules au niveau des chiffres et des
caract=E8res.

Auriez-vous une solution =E0 me conseiller ?

Merci d'avance =E0 ceux d'entre vous qui auront la gentillesse de
m'aider :o)

Miko

2 réponses

Avatar
Daniel
Bonjour.
Si j'ai bien compris, ajoute dans chaque cas :
c.Offset(0,-1).Interior.ColorIndex = xx
Cordialement.
Daniel


Bonjour,

Je souhaite afficher des cellules en couleur, avec une couleur
différente selon le jour de la semaine auquel correspond la date
affichée dans la cellule. J'ai un code que voici, qui met des cellules
en couleur en fonction du numéro du jour, affiché dans la cellule via
une formule JOURSEM().

Sub CouleursJours()
Columns("AE:AE").Select
Dim Target As Range
For Each c In Selection
Select Case c
Case 2
c.Interior.ColorIndex = 45
Case 3
c.Interior.ColorIndex = 37
Case 4
c.Interior.ColorIndex = 35
Case 5
c.Interior.ColorIndex = 36
Case 6
c.Interior.ColorIndex = 39
End Select
Next
End Sub

Mon problème est le suivant : ce code colorie dans la bonne couleur la
cellule qui CONTIENT le chiffre correspondant au jour, mais je souhaite
que soit mise en couleur la cellule placée AVANT celle qui contient le
numéro du jour de la semaine.

Exemple : en B1, j'ai un chiffre 3 (correspondant au mardi). Il se
colorie bien en bleu. Mais je veux colorier A1 en bleu également si B1
est en bleu, mais si B1 est jaune, je souhaite avoir A1 en jaune bien
sûr. Et je souhaite uniquement colorier, car j'ai des mises en forme
différentes selon les cellules au niveau des chiffres et des
caractères.

Auriez-vous une solution à me conseiller ?

Merci d'avance à ceux d'entre vous qui auront la gentillesse de
m'aider :o)

Miko




Avatar
Miko
Merci Daniel !

J'y avais pensé, mais ça ne fonctionnait pas. Mais du coup, en
réessayant avec votre solution, j'ai découvert autre chose : ma
cellule de gauche était en fait constituée de plusieurs cellules
fusionnées. Il fallait du coup calculer l'offset en fonction de la
cellule de départ fusionnée. C'est ce qui m'a trompé.

Exemple : si j'ai mon numéro de jour en C1 et que A1 et B1 sont
fusionnées, l'offset sera :

c.Offset(0,-2).Interior.ColorIndex = xx (-2
correspondant à la cellule A1)

Voilà.

Merci beaucoup pour votre aide, ça m'a vraiment fait avancer.

Miko


Bonjour.
Si j'ai bien compris, ajoute dans chaque cas :
c.Offset(0,-1).Interior.ColorIndex = xx
Cordialement.
Daniel


Bonjour,

Je souhaite afficher des cellules en couleur, avec une couleur
différente selon le jour de la semaine auquel correspond la date
affichée dans la cellule. J'ai un code que voici, qui met des cellules
en couleur en fonction du numéro du jour, affiché dans la cellule v ia
une formule JOURSEM().

Sub CouleursJours()
Columns("AE:AE").Select
Dim Target As Range
For Each c In Selection
Select Case c
Case 2
c.Interior.ColorIndex = 45
Case 3
c.Interior.ColorIndex = 37
Case 4
c.Interior.ColorIndex = 35
Case 5
c.Interior.ColorIndex = 36
Case 6
c.Interior.ColorIndex = 39
End Select
Next
End Sub

Mon problème est le suivant : ce code colorie dans la bonne couleur la
cellule qui CONTIENT le chiffre correspondant au jour, mais je souhaite
que soit mise en couleur la cellule placée AVANT celle qui contient le
numéro du jour de la semaine.

Exemple : en B1, j'ai un chiffre 3 (correspondant au mardi). Il se
colorie bien en bleu. Mais je veux colorier A1 en bleu également si B1
est en bleu, mais si B1 est jaune, je souhaite avoir A1 en jaune bien
sûr. Et je souhaite uniquement colorier, car j'ai des mises en forme
différentes selon les cellules au niveau des chiffres et des
caractères.

Auriez-vous une solution à me conseiller ?

Merci d'avance à ceux d'entre vous qui auront la gentillesse de
m'aider :o)

Miko