[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

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)
:rolleyes:
 

Discussions similaires

Réponses
17
Affichages
611

Statistiques des forums

Discussions
311 720
Messages
2 081 885
Membres
101 830
dernier inscrit
sonia poulaert