Excel 2019 : formule ou VBA pour codde couleur d'une cellule

Bonjour : dans Excel 2019, colonne A, j'ai des cellules de différentes couleurs, et j'aimerais en colonne B, afficher les codes couleur RVB correspondansts.

Existe-t-il une fonction Excel ? ou au pire un code VBA ? Et dans ce dernier cas, peut-il s'autoéxécuter à chaque changement de couleur ?

D'avance merci.

Cdlt

Vincent

Bonjour vmercy,

Le changement de couleur ne déclenche pas d'évènement donc le seul changement de couleur ne déclenchera pas une fonction (VBA) inscrite en formule dans une cellule. Par contre cela fonctionnerait, si le changement de couleur résulte d'un changement de valeur de cette cellule ou d'une autre cellule.

Les 3 valeurs du code RGB serait à mettre dans la même cellule ? et si oui, sous quel format ?

Cdlt,

Cylfo

Bonjour,

Cylfo bonjour,

Je le rejoins quant à ne pouvoir détecter le changement de couleur sur la cellule en question, mais bien souvent les utilisateurs clic plus qu'il ne faut sur le classeur du coup l'évènement "SelectionChange" est utilisé ici :

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
    Dim Lig As Long, R As Byte, G As Byte, B As Byte, Couleur As Long
    Lig = 1
    Do
        DoEvents
        Couleur = ActiveSheet.Cells(Lig, 1).Interior.Color
        R = Int(Couleur Mod 256)
        G = Int((Couleur Mod 65536) / 256)
        B = Int(Couleur / 65536)
        ActiveSheet.Cells(Lig, 2).Value = "RGB(" & R & "," & G & "," & B & ")"
        Lig = Lig + 1
    Loop While Lig < 8
End Sub

Le test se fait sur les 7 première ligne, à vous de régler ceci.

@ bientôt

LouReeD

Merci beaucoup pour cette belle avancée. Du coup, je vais intégrer un bouton de macro qui déclenchera ce petit code . Je teste ça tel que, et si ça marche (ce dont je ne doute pas !!!), je reviens vers vous pour qq explications car je ne comprends pas tout...

Merci beaucoup en tout cas.

Cdlt

Vincent

Bonsoir,

c'est parfait, génial, merci.

Ose-je abuser ??? J'essaie !!!

J'ai eu autre macro qui fait

varTabCouleur(1) = RGB(0, 112, 142)
varTabCouleur(2) = RGB(255, 255, 255)
varTabCouleur(3) = RGB(255, 0, 0)
etc...

Du coup, comment pourrais-je récupérer directement les code RGB qui se trouvent écrits dans l'onglet "parametrages", respectivement en J7, J8, J9 etc...

ça donnerait

varTabCouleur(1) =la valeur de J7 de l'onglet "parametrages"

varTabCouleur(2) =la valeur de J8 de l'onglet "parametrages"

etc...

Un énorme merci pour le temps que vous me faites gagner.

Bonne soirée

Vincent

Bonsoir,

pourquoi passer par la valeur RGB inscrite dans la cellule ?
Récupérez la couleur directement dans la cellule :

varTabCouleur(1) = Sheets("Parametrages").Cells(7,1).Interior.Color
'etc...
' ou bien avec une boucle
For i=1 to 3
    varTabCouleur(i) = Sheets("Parametrages").Cells(6+i,1).Interior.Color
Next i

@ bientôt

LouReeD

un grand merci à tous, vous êtes incroyables

Tout fonctionne au top, je crois rêver !

Merci et bonne soirée

Vincent

D'où l'importance de demander ce que l'on veut : comment mettre en tableau VBA les valeurs de couleurs d'une suite de cellules se trouvant sur l'onglet "parametrage" de mon classeur de la cellule J7 à J9 ?

@ bientôt

LouReeD

C'est vrai, je confirme que j'étais light dans ma demande, car je ne pensais pas que VBA puisse aller si loin et si vite !!!

Et d'ailleurs, puisque vous êtes sans limite dans vos réponses, j'ai aussi un graphique secteurs dans un dernier onglet : ne me dites pas que les couleurs des différents secteurs pourraient être coordonnées automatiquement aux couleurs de ma feuille paramétrages ?????

Même si la réponse est non, merci quand même pour tout le reste, c'est top

Bonne soirée

Vincent

Je ne maitrise pas trop tout ce qui touche aux graphique (bien que ce soit une chose antérieur à 2014 ! ), mais ceci peut certainement se faire...

Avez vous un fichier ? Un petit exemple afin que je vois ce que je peux, nous pouvons faire ?

@ bientôt

LouReeD

mon fichier fait 14Mo !!!!!! oui, je sais, sans doute pas optimisé !!!

Mon fichier etant tres volumineux (sans dout pas optimisé !!!), je vous ai construit un extrait de ce que je cherche

en 1er onglet colonne C un relevé des heures réalisées par tâche de la colonne B, et à côté un graphique secteur. Mon pb, c'est que Excel n'en fait qu'à sa tete pour les couleurs !!

Mon souhait, ce serait qu'en fonction du libellé de la tâche, il adapte la couleur du graphique aux vartabcouleur (grace à vous, j'ai même le vocabulaire de pro !!!) des cellules de la colonne B : dans mon exemple, le gros secteur du graphe devrait être orange comme la ligne 2.

Est-ce possible à votre avis ? Merci d'avance et bonne journée

Vincent

Bonjour,

un essai de code :

Sub Legendes()
    Application.ScreenUpdating = False
    ActiveSheet.ChartObjects("Graphique 1").Activate
    For i = 1 To 25
        With ActiveChart.FullSeriesCollection(1).Points(i).Format.Fill
            .Visible = msoTrue
            .ForeColor.RGB = ActiveSheet.Cells(i + 1, 3).Interior.Color
            .Transparency = 0
            .Solid
        End With
    Next i
    Range("A1").Select
End Sub

@ bientôt

LouReeD

J'hésite entre tous les adjectifs : extraordinaire, génial, inoui, bref, vous l'avez compris : ça maaaaarche !!!

Bravo à vous pour votre savoir, et merci pour votre disponibilité. Respect.

Cordialement

Vincent

Merci, merci et merci !
Pour votre entière information les trois lignes : visible, solid et transparence ne sont pas nécessaire au code dans votre cas, cela raccourci un peut la boucle.

@ bientôt

LouReeD

Rechercher des sujets similaires à "2019 formule vba codde couleur"