Private Sub UserForm_Initialize()
Me.BackColor = Sheets(1).Range("A5").Interior.Color
CommandButton1.BackColor = Sheets(1).Range("A1").Interior.Color
CommandButton2.BackColor = Sheets(1).Range("A2").Interior.Color
CommandButton3.BackColor = Sheets(1).Range("A3").Interior.Color
End Sub
c'est presque çaAvec le code donné par la fonction de Staple, ça donne :
RVB Hexa = FFFF00
Avec le fichier de Modeste Geedee, ça donne :
Hexadecimal = &h00FFFF
Ici, l'Hexa fait pas du RGB mais du BGR ??? WTF ?
C'est normal: il est fait pour capturer un pixel en dehors de lui même, voire dans une autre application. Mais il se rapprochera à distance raisonnable de curseur de la souris, jusqu'à ce que vous ne le bougerez plus durant une seconde !Lorsque je clique sur capturer un pixel, dès que je clique sur Go, l'userform se fait la malle : WTF ????
Lol, et vu que j'essayais de le poursuivre avec ma souris, je comprends mieux pourquoi il essayait de se barrer !C'est normal: il est fait pour capturer un pixel en dehors de lui même, voire dans une autre application. Mais il se rapprochera à distance raisonnable de curseur de la souris !
Public Function getRGB(rcell) As String
Dim sColor As String
sColor = Right("000000" & Hex(rcell.Interior.Color), 6)
getRGB = Right(sColor, 2) & Mid(sColor, 3, 2) & Left(sColor, 2)
End Function
Public Function getBGR(rcell) As String
Dim sColor As String
sColor = Right("000000" & Hex(rcell.Interior.Color), 6)
getBGR = Left(sColor, 2) & Mid(sColor, 3, 2) & Right(sColor, 2)
End Function
Sub a_test() 'raccourcis ctrl+m
'Convertir les codes couleurs en valeurs RGB
Dim RGBC, Blue, Green, Red As Long
Dim usfColor As String
RGBC = ActiveCell.Interior.Color
Red = Int(RGBC Mod 256)
Green = Int((RGBC Mod 65536) / 256)
Blue = Int(RGBC / 65536)
usfColor = "&H00" & getBGR(ActiveCell) & "&"
MsgBox "Excel Color : " & RGBC & Chr(10) & _
"UserForm Control Color : " & usfColor & Chr(10) & _
"Hexa RGB: " & getRGB(ActiveCell) & Chr(10) & _
"RED (rouge): " & Red & vbCr & _
"GREEN (vert): " & Green & vbCr & _
"BLUE (bleu): " & Blue, , " RGB Values"
End Sub
Remarque: Les codes couleurs sont des entiers Long. Il n'est nulle part indispensables de les spécifier aux propriétés ForeColor, BackColor de VBA ou Color d'Excel comme constantes numériques hexadécimales Long (commençant par &H et se terminant par &, que VBA enlève, d'ailleurs dans du code, quand ça ne peut pas être autre chose qu'un Long). Et il est absurde de les initialiser par des textes reproduisant cette codification !