XL 2013 changer de couleur au clic

maval

XLDnaute Barbatruc
Bonjour:D6
J'ai un code pour changer de couleur sur un clic sur les cellules C6;D6 en cliquant sur les cellules H6:V60
Mais je n'arrive pas a le configurer
Voila mon code

VB:
'Couleur de cellule au clic de la colonne F

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
    Static LignePrécedente
    If Target.Column < 11 Or Target.Column > 25 Or Target.Count > 1 Or Target.Row < 4 Or Target.Row > 50 Then
        Exit Sub     ' 11 = 11éme colonne "K"  25 25éme colonne "Y"                 4= 4éme ligne 50= 50éme ligne
    End If
    If LignePrécedente <> "" Then
        If Cells(LignePrécedente, 6).Interior.ColorIndex = 3 Then '3 = couleur rouge au niveau du clic et 6 = a la colonne F
            Cells(LignePrécedente, 6).Interior.ColorIndex = 1 '1 =  Fond noir de la cellule et 6 = a la colonne F
        End If
    End If
    LignePrécedente = Target.Row
        Cells(Target.Row, 6).Interior.ColorIndex = 3 '3 = couleur rouge au niveau du clic et 6 = a la colonne F
End Sub
 

Pièces jointes

  • Clic_Touge.xlsm
    14.1 KB · Affichages: 13

patricktoulon

XLDnaute Barbatruc
Bonjour
c'est simple
dans le module de ta feuille tu met ceci
ici la cellule sélectionnée devient rouge et a la selection suivante celle qui a été précédemment sélectionnée reprend sa couleur initiale
on ne sort pas de K5:Y50
si tu sors de la plage , la cellule précédemment sélectionnée repend sa couleur mais il n'y a pas de nouvelle rouge
VB:
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
    Static Cellprevious As Range
    Static colorprevious
    If Target.Count > 1 Then Exit Sub
    If Not Cellprevious Is Nothing Then Cellprevious.Interior.Color = colorprevious
    If Not Intersect(Target, [K5:Y50]) Is Nothing Then
        colorprevious = Target.Interior.Color
        Target.Interior.ColorIndex = 3
        Set Cellprevious = Target
    End If
End Sub

demo3.gif
 

maval

XLDnaute Barbatruc
Bonjour Patrick Et merci beaucoup

J'ai du du mal m"exprimer et je m'excuse
Ce que je cherche a faire c'est sélectionné une cellule entre H6: V60 et que cellule sur la même ligne
ex.. je clic dans la cellule (L11) les cellules (C&D11) deviennent rouge
ou je clic dans la cellule ( R38) les cellules (C &D 38) deviennent rouge.
ici la cellule sélectionnée devient rouge et a la sélection suivante celle qui a été précédemment sélectionnée reprend sa couleur initiale
on ne sort pas de H6 V60
Je te remercie et excuse moi
Max
 

patricktoulon

XLDnaute Barbatruc
re
et bien meme principe on prend les memes et on recommence ;)
l'avantage avec celle méthode c'est que tu n'est pas bridé a une couleur
chaque ligne en C;D peut avoir sa couleur elle la retrouvera toujours
VB:
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
    Static Cellprevious As Range: Static colorprevious
    If Target.Count > 1 Then Exit Sub
    If Not Cellprevious Is Nothing Then Cellprevious.Interior.Color = colorprevious: Set Cellprevious = Nothing
    If Not Intersect(Target, [h6:v60]) Is Nothing Then
        colorprevious = [C:D].Rows(Target.Row).Interior.Color
        [C:D].Rows(Target.Row).Interior.ColorIndex = 3
        Set Cellprevious = [C:D].Rows(Target.Row)
    End If
End Sub
demo3.gif
 
Dernière édition:

patricktoulon

XLDnaute Barbatruc
Re
Nickel juste pourquoi lorsqu'il clique les autre cellules de C;D deviennent noir sinon tres bien
??? je ne sais pas normalement c'est impossible j'ai prevu ca avec
If Not Cellprevious Is Nothing Then Cellprevious.Interior.Color = colorprevious: Set Cellprevious = Nothing

donc en dehors des colonnes H;V ca ne devrait pas colorer une quelconque cellule ,tu dois avoir un autre code qui parasite
 

job75

XLDnaute Barbatruc
Bonjour maval, le fil,

Pourquoi aller chercher midi à 14 heures, il suffit de colorer par une MFC créée par cette macro :
VB:
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
With [C6:D60]
    .FormatConditions.Delete
    If Intersect(ActiveCell, [H6:V60]) Is Nothing Then Exit Sub
    With .Rows(ActiveCell.Row - .Row + 1)
        .FormatConditions.Add xlExpression, Formula1:=1 'crée la MFC
        .FormatConditions(1).Interior.Color = vbRed
    End With
End With
End Sub
A+
 

Pièces jointes

  • Clic_Touge(1).xlsm
    18.3 KB · Affichages: 10

Discussions similaires