1. Ce site utilise des "témoins de connexion" (cookies) conformes aux textes de l'Union Européenne. Continuer à naviguer sur nos pages vaut acceptation de notre règlement en la matière. En savoir plus.

[RESOLU] Obtenir code couleur RGB ou Hexadecimal

Discussion dans 'Forum Excel' démarrée par cp4, 12 Février 2018.

  1. cp4

    cp4 XLDnaute Occasionnel

    Inscrit depuis le :
    7 Novembre 2015
    Messages :
    320
    "J'aime" reçus :
    12
    Utilise:
    Excel 2010 (PC)
    Bonjour,:)

    J'ai mis en forme une plage de données en un tableau structuré excel.
    J'ai voulu utiliser la couleur de ce tableau sur une autre feuille sans utiliser le copier coller la mise en forme, mais plutôt par un code couleur.
    La fonction ci-dessous me donne le code de la couleur de l'une des cellules.
    Mais en l'utilisant la couleur n'est pas identique.
    Code (Visual Basic):
    Function CodeCouleur(CelluleCouleur As Range) As Long
    'Retourne le code couleur de la CelluleCouleur
    Application.Volatile
    Codecouleur = CelluleCouleur.Interior.ColorIndex
    End Function
    J'ai trouvé qu'il fallait utiliser le code Hexadécimal ou RGB, mais je n'ai pas trouvé de fonction dans ce sens.

    En vous remerciant.
     
  2. Chargement...

    Discussions similaires - [RESOLU] Obtenir code Forum Date
    XL 2016 [RESOLU] Obtenir la couleur de remplissage d'une MFC Forum Excel 18 Octobre 2017
    Ou obtenir la palette des couleur pour la MEF des commentaires ? [résolu] Forum Excel 23 Mars 2015
    [Résolu] SOMMEPROD(NB,SI( obtenir résultat négatifs. Forum Excel 2 Mars 2013
    [resolu] Obtenir la somme de cellule contenant le texte cp ? Forum Excel 30 Août 2012
    [Résolu] Obtenir la dernière ligne d'une personne Forum Excel 6 Juillet 2012

  3. Calvus

    Calvus XLDnaute Accro

    Inscrit depuis le :
    27 Octobre 2008
    Messages :
    1719
    "J'aime" reçus :
    111
    Habite à:
    Antibes
    Utilise:
    Excel 2007 (PC)
    Bonjour CP4,

    Si je comprends bien, tu as déjà la couleur que tu souhaites dans une des cellules.

    Dans ce cas, tu n'as qu'à l'extraire par vba :
    Code (Visual Basic):
    Range("A2")=Range("A1").Interior.Color
    En espérant t'avoir aidé.

    A+
     
  4. Dranreb

    Dranreb XLDnaute Barbatruc

    Inscrit depuis le :
    31 Janvier 2011
    Messages :
    13905
    "J'aime" reçus :
    826
    Sexe :
    Masculin
    Habite à:
    Belfort
    Utilise:
    Excel 2016 (PC)
    Bonjour.
    Cette fourniture vous donnera plusieurs moyens de trouver le code de couleur d'une cellule, par capture ou en l'appliquant à un échantillon d'une étude.
     
    cp4 aime votre message.
  5. kiki29

    kiki29 XLDnaute Accro

    Inscrit depuis le :
    15 Mai 2006
    Messages :
    1905
    "J'aime" reçus :
    57
    Sexe :
    Masculin
    Habite à:
    Saint-Thois
    Utilise:
    Excel 2003 (PC)
  6. cp4

    cp4 XLDnaute Occasionnel

    Inscrit depuis le :
    7 Novembre 2015
    Messages :
    320
    "J'aime" reçus :
    12
    Utilise:
    Excel 2010 (PC)
    Calvus;), Dranreb;), Kiki29;), Merci beaucoup.

    @Calvus : Ce n'est pas ce que je cherche. C'est trouvé le bon code de la couleur. La fonction me renvoie 47, mais quand j'utilise ce code la couleur est différente (pas la même nuance).

    @Dranreb et @kiki29 : Je consulte et reviens aux nouvelles.

    @+;)
     
  7. Roland_M

    Roland_M XLDnaute Barbatruc

    Inscrit depuis le :
    26 Avril 2007
    Messages :
    4072
    "J'aime" reçus :
    275
    Utilise:
    Excel 2007 (PC)
    Bonjour à tous,

    un petit exemple simple

    Code (Text):

    'exemple avec couleur fond en (A1)
    Sub Couleur()
    Dim CoulLong&, CoulIdx%, R&, V&, B&

    CoulLong = Range("A1").Interior.Color
    CoulIdx = Range("A1").Interior.ColorIndex
    MsgBox CoulLong & vbLf & CoulIdx

    'extraire RVB
    R = Int(CoulLong Mod 256)
    V = Int((CoulLong Mod 65536) / 256)
    B = Int(CoulLong / 65536)
    MsgBox "Rouge= " & R & vbLf & "Vert= " & V & vbLf & "Bleu= " & B

    'inversément RVB en Long
    CoulLong = R + (V * 256) + (B * 65536)
    MsgBox CoulLong

    End Sub
     
     
    Dernière édition: 12 Février 2018
  8. cp4

    cp4 XLDnaute Occasionnel

    Inscrit depuis le :
    7 Novembre 2015
    Messages :
    320
    "J'aime" reçus :
    12
    Utilise:
    Excel 2010 (PC)
    Bravo, très très beau et très très bon travail.
    Mais, c'est trop ardu pour mon niveau.
    Je voulais juste une fonction qui me retourne le code exact de la couleur d'une cellule.
    N'ayant pas les compétences et connaissances pour exploiter pour le moment tes codes.
    En effet, sur le fichier les codes des couleurs sont données.
    Etant daltonien, il m'est difficile de discerner certaines couleurs et nuances.
    C'est pour cette raison que je voudrais une fonction qui me retourne le code plutôt en RGB (après avoir consulter ton fichier).

    En tout cas, je te dis chapeau pour le boulot. C'est du lourd.;)
     
  9. Roland_M

    Roland_M XLDnaute Barbatruc

    Inscrit depuis le :
    26 Avril 2007
    Messages :
    4072
    "J'aime" reçus :
    275
    Utilise:
    Excel 2007 (PC)
    re

    as-tu vu ma macro ? au message précédent post#6
    elle répond exactement à tes besoins !
     
  10. Dranreb

    Dranreb XLDnaute Barbatruc

    Inscrit depuis le :
    31 Janvier 2011
    Messages :
    13905
    "J'aime" reçus :
    826
    Sexe :
    Masculin
    Habite à:
    Belfort
    Utilise:
    Excel 2016 (PC)
    Code (Visual Basic):
    Function CodeCoul(ByVal R As Range) As String
    CodeCoul = "&H" & Right$("00000" & Hex(R.Interior.Color, 6) & "&"
    End Sub
    Attention elle ne sera pas réévaluée si on la change.
     
  11. cp4

    cp4 XLDnaute Occasionnel

    Inscrit depuis le :
    7 Novembre 2015
    Messages :
    320
    "J'aime" reçus :
    12
    Utilise:
    Excel 2010 (PC)
    Merci beaucoup, c'est intéressant. Le fichier est super bien fait. Je dois mettre l'userform et tous les codes sur mon fichier pour que pointeur puisse m'afficher le code.

    Merci beaucoup, j'ai téléchargé le fichier qui me sera utile pour mes prochaine réalisation.
     
  12. cp4

    cp4 XLDnaute Occasionnel

    Inscrit depuis le :
    7 Novembre 2015
    Messages :
    320
    "J'aime" reçus :
    12
    Utilise:
    Excel 2010 (PC)
    :) J'ai bien vu ton premier post, je testais et prioritairement je répondais à Kiki29.

    J'ai fait un petit fichier, dans lequel j'ai utilisé ton code. J'ai sûrement fait une gaffe car je n'arrive pas à reproduire la couleur. Merci de voir le fichier joint.
     

    Pièces jointes:

  13. cp4

    cp4 XLDnaute Occasionnel

    Inscrit depuis le :
    7 Novembre 2015
    Messages :
    320
    "J'aime" reçus :
    12
    Utilise:
    Excel 2010 (PC)
    Merci Dranreb, mais comment utiliser cette fonction d'autant plus que la ligne de code est non conforme (couleur) upload_2018-2-12_17-30-50.png
    Merci quand même.
     
  14. Dranreb

    Dranreb XLDnaute Barbatruc

    Inscrit depuis le :
    31 Janvier 2011
    Messages :
    13905
    "J'aime" reçus :
    826
    Sexe :
    Masculin
    Habite à:
    Belfort
    Utilise:
    Excel 2016 (PC)
    Ah, pas évident cette affaire là.
    Code (Visual Basic):
    Sub Couleurs()
    Dim TSe As TableStyle, CoulLong&, CoulIdx%, R&, V&, B&
    Set TSe = ActiveSheet.ListObjects(1).TableStyle
    CoulLong = TSe.TableStyleElements(xlHeaderRow).Interior.Color
    Range("m1") = CoulLong
    Range("n1").Interior.Color = CoulLong
    Range("n2").Interior.ColorIndex = -4142
    R = Int(CoulLong Mod 256)
    V = Int((CoulLong Mod 65536) / 256)
    B = Int(CoulLong / 65536)
    Range("m4") = R
    Range("m5") = V
    Range("m6") = B
    Range("m7") = "&H" & Right$("00000" & Hex(CoulLong), 6) & "&"
    End Sub
     
    Roland_M et cp4 aiment cela.
  15. cp4

    cp4 XLDnaute Occasionnel

    Inscrit depuis le :
    7 Novembre 2015
    Messages :
    320
    "J'aime" reçus :
    12
    Utilise:
    Excel 2010 (PC)
    Un très merci Dranreb, c'est parfait, impeccable.:cool::cool::cool::D:D:D:):)
    Tu me sauves, je n'aurai plus à embêter mon entourage.

    Bonne soirée à vous.
     
  16. Modeste geedee

    Modeste geedee XLDnaute Barbatruc

    Inscrit depuis le :
    8 Mars 2012
    Messages :
    6176
    "J'aime" reçus :
    750
    Bonsour®
    voir également ceci :
    upload_2018-2-12_22-33-26.png
    voir plus...
    upload_2018-2-13_11-46-56.png
     

    Pièces jointes:

    Dernière édition: 13 Février 2018
  17. cp4

    cp4 XLDnaute Occasionnel

    Inscrit depuis le :
    7 Novembre 2015
    Messages :
    320
    "J'aime" reçus :
    12
    Utilise:
    Excel 2010 (PC)
    Bonsoir Modeste Geedee;),

    C'est vraiment le top ton fichier. Je le mets avec les autres dans ma bibliothèque. Enfin, si je peux l'appelais ainsi. Vraiment très gentil de ta part.

    Encore merci.

    Bonne soirée:D
     
  18. VIARD

    VIARD XLDnaute Occasionnel

    Inscrit depuis le :
    17 Février 2006
    Messages :
    392
    "J'aime" reçus :
    50
    Habite à:
    Brest
    Utilise:
    Excel 2007 (PC)
    Bonjour CP4 et à tous

    Histoire d'ajouter un peu d'eau au moulin.
    Si tu veux en savoir plus sur une cellule couleur ou autre

    IntColor = ActiveCell.Interior.Color
    '-------- Couleur Fond cellule (RGB) (Hexa) --------
    HexDigits = Hex(IntColor)
    Do Until Len(HexDigits) = 6
    HexDigits = "0" & HexDigits
    Loop
    BluePartie = Val("&h" & Left(HexDigits, 2))
    GreenPartie = Val("&h" & Mid(HexDigits, 3, 2))
    RedPartie = Val("&h" & Right(HexDigits, 2))
    ValeurRGB = "(" & RedPartie & " , " & GreenPartie & " , " & BluePartie & ")"
    ValeurHexa = Hex$(IntColor)
    'MsgBox "&H" & Hex$(IntColor)
    '----------------------------------------------------------

    Voici mon petit fichier

    A+ Jean-Paul
     

    Pièces jointes:

  19. cp4

    cp4 XLDnaute Occasionnel

    Inscrit depuis le :
    7 Novembre 2015
    Messages :
    320
    "J'aime" reçus :
    12
    Utilise:
    Excel 2010 (PC)
    Merci beaucoup Jean Paul. Toute ma gratitude.:):):):)
    La classe:D
     

Partager cette page