[RESOLU] Obtenir code couleur RGB ou Hexadecimal

cp4

XLDnaute Barbatruc
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.
VB:
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.
 

Roland_M

XLDnaute Barbatruc
Bonjour à tous,

un petit exemple simple

Code:
'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:

cp4

XLDnaute Barbatruc
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.
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.;)
 

cp4

XLDnaute Barbatruc
re

as-tu vu ma macro ? au message précédent post#6
elle répond exactement à tes besoins !
:) 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

  • EssaiCouleur.xlsm
    15.7 KB · Affichages: 101

cp4

XLDnaute Barbatruc
VB:
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.
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.
 

Dranreb

XLDnaute Barbatruc
Ah, pas évident cette affaire là.
VB:
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
 

Discussions similaires

Réponses
7
Affichages
657

Statistiques des forums

Discussions
311 725
Messages
2 081 943
Membres
101 849
dernier inscrit
florentMIG