Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

[VBA] récupérer la couleur RGB d'une police dans un cellule

F22Raptor

XLDnaute Impliqué
Hello
Je voudrais récupérer (pour l'utiliser ensuite ailleurs) la couleur RGB des caractères dans une cellule.
J'ai essayé pas mal de combinaisons du type MsgBox Activecell.Font.Color.RGB mais sans succès ...

Une idée ?
 

F22Raptor

XLDnaute Impliqué
Re : [VBA] récupérer la couleur RGB d'une police dans un cellule

J'obtiens un nombre du genre 16777215 pour la couleur blanche.
Il doit y avoir une correspondance pour obtenir XXX,YYY,ZZZ en RGB, mais je ne trouve pas
 

F22Raptor

XLDnaute Impliqué
Re : [VBA] récupérer la couleur RGB d'une police dans un cellule

trouvé ! Il faut d'abord convertir en code hexadécimal :

Dim CouleurHexa, r, g, b
CouleurHexa = Hex(ActiveCell.Font.Color)


r = Val("&H" & Mid(CouleurHexa, 1, 2))

g = Val("&H" & Mid(CouleurHexa, 3, 2))

b = Val("&H" & Mid(CouleurHexa, 5, 2))

MsgBox r & vbTab & g & vbTab & b
 

Pierrot93

XLDnaute Barbatruc
Re : [VBA] récupérer la couleur RGB d'une police dans un cellule

Bonjour,

une autre approche, code de MichelXLD

Code:
Dim Couleur As Long, Rouge As Integer, Vert As Integer, Bleu As Integer
Couleur = ActiveCell.Font.Color
Rouge = Int(Couleur Mod 256)
Vert = Int((Couleur Mod 65536) / 256)
Bleu = Int(Couleur / 65536)

bon après midi
@+
 

Modeste geedee

XLDnaute Barbatruc
Re : [VBA] récupérer la couleur RGB d'une police dans un cellule

trouvé ! Il faut d'abord convertir en code hexadécimal :

Dim CouleurHexa, r, g, b
CouleurHexa = Hex(ActiveCell.Font.Color)

Plutôt
r = Val("&H" & Mid(CouleurHexa, 5, 2))
g = Val("&H" & Mid(CouleurHexa, 3, 2))
b = Val("&H" & Mid(CouleurHexa, 1, 2))

MsgBox r & vbTab & g & vbTab & b

Car la pondération hexadécimale met les poids faibles à droite (Rouge)
les poids lourds à gauche (bleu)
 

Discussions similaires

Réponses
17
Affichages
690
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…