Changement de couleur de cellule

maval

XLDnaute Barbatruc
Bonjour,


Voila je suis confronté a un problème que je ne sais vraiment pas comment faire.

J'ai un code que lorsque je clic sur une cellule de la colonne "C" j'ai une cellule qui correspond dans la colonne "J" qui prend le fond rouge avec ce code.
Code:
Public lastcell As Range
 
'Couleur de fond de cellule rouge pour la colonne "F"
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
Dim Plage As Range
With ActiveSheet
Set Plage = .Range("C4:C100")
If Not (Intersect(Target, Plage) Is Nothing) Then
If Not lastcell Is Nothing Then lastcell.Interior.ColorIndex = 0 ' 1= fond noir 15= gris
.Cells(Target.Row, 10).Interior.ColorIndex = 3 '3= couleur rouge Target.Row, 6= colonne "F"
Set lastcell = .Cells(Target.Row, 10)
End If
 
End With
End Sub

J'ai dans les colonnes "C4:F100" une liste de nom et dans les colonnes "J4:K1000" j'ai des cases pour des notations. J'aimerais que lorsque je me rends sur une des cellules "C4:F100" que les cellules correspondante dans la colonne "J &K" devienne fond rouge.
Ex: si je click sur "C8" les cellules "J8:K8" devient fond rouge
si je click sur "D9" les cellules "M9:N9" devient fond rouge ect...

Un joint un exemple
Un grand merci à tout ceux qui pourront m'aider...
Cordialement Max
 

Pièces jointes

  • Cellule rouge.xlsm
    18.9 KB · Affichages: 36

JCGL

XLDnaute Barbatruc
Re : Changement de couleur de cellule

Bonjour à tous,

Je n'ai pas compris le décalage ente Jet K et M et N...

Pour Jet K :

VB:
Public lastcell As Range


Private Sub Worksheet_SelectionChange(ByVal Target As Range)
    Dim Plage As Range
    With ActiveSheet
        Set Plage = .Range("C4:C100")
        Range("J4:K100").Interior.ColorIndex = 0
        If Not (Intersect(Target, Plage) Is Nothing) Then
            If Not lastcell Is Nothing Then lastcell.Interior.ColorIndex = 0
            .Cells(Target.Row, 10).Interior.ColorIndex = 3
            .Cells(Target.Row, 11).Interior.ColorIndex = 3
            Set lastcell = .Cells(Target.Row, 10)
        End If
    End With
End Sub

A + à tous

Edition : je pense avoir compris...

VB:
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
    Dim Plage As Range
    With ActiveSheet
        Set Plage = .Range("C4:F100")
        Range("J4:T100").Interior.ColorIndex = 0
        If Not (Intersect(Target, Plage) Is Nothing) Then
            .Cells(Target.Row, Int(Target.Column * 3) + 1).Interior.ColorIndex = 3
            .Cells(Target.Row, Int(Target.Column * 3) + 2).Interior.ColorIndex = 3
        End If
    End With
End Sub
 
Dernière édition:

maval

XLDnaute Barbatruc
Re : Changement de couleur de cellule

Bonjour,

Je doit modifier le code qui a été réaliser par JCGL que je salut et remercie au passage le décaler d'une colonne vers la droite.

Un fichier valant mieux qu'un long discours, veuillez trouver l'exemple sur la pièce jointe.

Merci de votre aide

Cordialement
Maval
 

Pièces jointes

  • celRou.xlsm
    20.4 KB · Affichages: 30

JCGL

XLDnaute Barbatruc
Re : Changement de couleur de cellule

Bonjour à tous,

Avec un peu de réfléxion, tu y serais certainement arrivé...

VB:
Private Sub Worksheet_SelectionChange(ByVal Target As Range)    Dim Plage As Range
    With ActiveSheet
        Set Plage = .Range("D4:G100")
        Range("K4:U100").Interior.ColorIndex = 0
        If Not (Intersect(Target, Plage) Is Nothing) Then
            .Cells(Target.Row, Int(Target.Column * 3) - 1).Interior.ColorIndex = 3
            .Cells(Target.Row, Int(Target.Column * 3)).Interior.ColorIndex = 3
        End If
    End With
End Sub


A + à tous
 

maval

XLDnaute Barbatruc
Re : Changement de couleur de cellule

Re,

J'ai bataillé 1 heure et pourtant j'avais changer ceci

Code:
 Set Plage = .Range("D4:G100")
        Range("K4:U100").Interior.ColorIndex = 0

Impossible
Bon maintenant sa fonctionne
Je te remercie bonne soirée


Max
 

Discussions similaires