Colorations par pallier (double-clics) : Pourquoi le vert n'est pas le bon ?

anthoYS

XLDnaute Barbatruc
Bonjour,


Voici le code incriminé :

Code:
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)    Dim c As Long, i As Long
      If Intersect(Target, Range("liste_courses")) Is Nothing Then Exit Sub
    c = Target.Interior.ColorIndex
    For i = 1 To Range("pallette").Count
        If Range("pallette").Cells(i, 1).Interior.ColorIndex = c Then
            Target.Interior.ColorIndex = Range("pallette").Cells(i + 1, 1).Interior.ColorIndex
            Target.Font.ColorIndex = Range("pallette").Cells(i + 1, 1).Font.ColorIndex
            i = Range("pallette").Count
            Cancel = True
        End If
    Next i
End Sub

Voici le vert fait avec le bon à côté (souhaité) :



Un double clic colore en vert, le suivant, en orange, le suivant en rouge etc. Puis la boucle reprend..
En fait, ici le vert n'est pas le bon. Puis-je en outre colorer la police en blanc lorsque le fond est rouge ?
Si quelqu'un à une ou plusieurs réponses à me proposer..


Merci par avance,

à+
 

MJ13

XLDnaute Barbatruc
Re : Colorations par pallier (double-clics) : Pourquoi le vert n'est pas le bon ?

Bonjour Anthony

Pour ton problème de vert, il vaudrait peut-être mieux colorier avec les couleurs RGB, en regardant les coordonnées RGB que donne la palette.
 

job75

XLDnaute Barbatruc
Re : Colorations par pallier (double-clics) : Pourquoi le vert n'est pas le bon ?

Bonjour anthoYs, salut Michel,

Il est clair que si une cellule dans liste_courses est déjà colorée avec une autre couleur que celles de la palette, sa couleur ne changera pas...

Si donc vous voulez que la macro la modifie, utilisez :

Code:
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
Dim c As Long, i As Long
    If Intersect(Target, Range("liste_courses")) Is Nothing Then Exit Sub
    c = Target.Interior.ColorIndex
    For i = 1 To Range("pallette").Count
        If Range("pallette").Cells(i, 1).Interior.ColorIndex = c Then
            Target.Interior.ColorIndex = Range("pallette").Cells(i + 1).Interior.ColorIndex
            Target.Font.ColorIndex = Range("pallette").Cells(i + 1).Font.ColorIndex
            Cancel = True
            Exit Sub
        End If
    Next i
    Target.Interior.ColorIndex = Range("pallette").Cells(2).Interior.ColorIndex
    Target.Font.ColorIndex = Range("pallette").Cells(2).Font.ColorIndex
 End Sub
Et si vous voulez une police blanche avec la couleur de fond rouge, donnez à la cellule rouge de la palette une police blanche.

A+
 
Dernière édition:

Discussions similaires

Réponses
0
Affichages
188

Statistiques des forums

Discussions
312 684
Messages
2 090 917
Membres
104 699
dernier inscrit
Azyra