Changer la couleur de la ligne active sur une plage donnée

L

Lapou

Guest
Bonjour le Forum,

Je souhaiterais que lorsque je selectionne une cellule dans ma zone (A3:M1044), la ligne contenant la cellule change de couleur uniquement sur cette même zone (A3:M1044).
Et que lorsque je sélectionne une autre cellule, la couleur disparaisse et passe sur la ligne active.

J'utilise ce code :

Private Sub Worksheet_SelectionChange(ByVal Target _
As Excel.Range)
Range("A3:M1044").Interior.ColorIndex = xlNone
With ActiveCell
.EntireRow.Interior.ColorIndex = 36
End With
End Sub

Le tout tit souci est qu'avec le code ci-dessus la macro change la couleur de toute la ligne et non pas de ma plage.

Le pb vient ss doute de ma 3ème ligne en partant de la fin mais là je fais mon lourd pq j'y arrive pas ;-)

Merci pour votre aide !
Bonne am
Lapou
 
E

EricS

Guest
Bonjour

range("a" & activecell.row & ":M" & activecell.row).Interior.ColorIndex = 36

devrait fonctionner, à la place des 2 lignes with activecell...=36"

Je n'ai pas eu le temps d'essayer, tiens moi au courant

Eric
 
K

K@d

Guest
Salut !

Remplace le code comme suit :

Au lieu de :

With ActiveCell
.EntireRow.Interior.ColorIndex = 36
End With

with range(intersect(activecell.entirerow,columns(3)),intersect(activecell.entirerow,columns(1044)))
.Interior.ColorIndex = 36
End With

Cela devrait fonctionner si je ne m'abuse. Toutefois, tu ne pourras pas modifier à loisir la zone de "travail".
A ta disposition pour plus d'informations.

Clément
 
L

Lapou

Guest
pendant que j'y suis autant profiter de vous : est-il possible que ce changement se fasse sur plusieurs ligne si je sélectionne plusieurs cellules à l'aide de Ctrl ?

MERCIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIII
Bonne Après-Midi
 
L

Lapou

Guest
Clarification : Changer la couleur de la ligne active sur une plage donnée

Re bonjour tout le monde !!!

Suite à tout ces messages le pb du départ et les suivant risquent de ne plus ressembler à rien.

Donc je reprends de 0 :

Sur ma feuille, je souhaiterais avoir l'ensemble de mes cellules en couleur 15, sauf de A2:M2 en 37 et de A3:M1000 sans couleur.

En plus de cela, l'idéal serait que lorsque je selectionne n'importe quelle cellule de la ligne 3 à 1000 l'ensemble de la ligne selectionnée passe en couleur 43 (avec la possibilité de sélectionner plusieurs lignes par Ctrl)

J'utilise le code suivant qui remplie une partie de mon besoin mais pas complètement :

Private Sub Worksheet_SelectionChange(ByVal Target _
As Excel.Range)
Range("A1:M1").Interior.ColorIndex = 15
Range("A2:M2").Interior.ColorIndex = 37
Range("A3:M1000").Interior.ColorIndex = xlNone
Range("A" & ActiveCell.Row & ":M" & ActiveCell.Row).Interior.ColorIndex = 43
End Sub

De plus avec le code ci-dessus, je n'ai plus aucune possibilités de faire de copier/coller sur la feuille entière !

Je fais donc appel à votre savoir pour m'aider et vous en remercie.

Bonne fin d'après-midi,
Lapou
 
L

Lapou

Guest
Re: VBA : Changer la couleur de la ligne active sur une plage donnée

Hello le forum !!!

Juste pour vous dire que j'avance petit à petit dans mon truc mais c'est pas évident !!!

Donc si y'en a qui ont des lueurs d'espoirs, n'hésitez pas ;-) Je pense notamment à notre @+Thierry que je vois de nouveau trainer par ici ;-)

Bonne am
Tchao
Lapou
 
L

Lapou

Guest
SOLUTION : Re: VBA : Changer la couleur de la ligne active sur une plage donnée

Bonjour tout le monde !!!

Souhaitant faire avancer d'autres personnes ayant le même problème je viens vous donner le code qui me permet de surligner 1 ou plusieurs lignes d'une couleurs différentes et qui m'aide bien pour une grosse base de données.
J'espère que cela en sera de même pour vous ;-) je le trouve plutôt sympa pour mon tit niveau ;-)

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
Dim cell As Range
Range("A1:M1").Interior.ColorIndex = 15
Range("N1:W1500").Interior.ColorIndex = 15
Range("A2:M2").Interior.ColorIndex = 37
Range("A3:M1500").Interior.ColorIndex = xlNone
Range("A" & ActiveCell.Row & ":W" & ActiveCell.Row).Interior.ColorIndex = 43
If Target.Row >= 2 And Target.Row <= 10000 Then
If Target.Count = 1 Then
Target.EntireRow.Columns("A:W").Interior.ColorIndex = 43
Else
For Each cell In Target
cell.EntireRow.Columns("A:W").Interior.ColorIndex = 43
Next
End If
End If
End Sub

Y'a un dernier truc que je comprends pas, c'est qu'avec ce code, je peux faire un copier mais lorsque je change de cellule pour coller, je n'ai plus rien !!!

Merci
Bonne journée
Tchao
 

Discussions similaires

Statistiques des forums

Discussions
313 060
Messages
2 094 924
Membres
106 128
dernier inscrit
lopierre