Code couleur en VBA (boutons etc)

Code couleur en VBA (boutons etc) - VB/VBA/VBS - Programmation

Marsh Posté le 15-12-2011 à 18:04:59    

Bonsoir à vous,
 
j'ai un soucis sur lequel je bloque depuis quelques heures et dont je n'arrive pas à trouver la solution moi même.
En gros dans ma macro j'ai un bouton dont la backcolor a été changé en vert RGB (0,255,0) après une action, et en faisant une autre action j'aimerai le faire revenir à sa couleur par défaut, le gris de base (qui est notée &H8000000F& dans mon éditeur). Le soucis c'est que je ne comprend pas la manière de fonctionner de la chose ! En effet 8000000F n'est pas un code hexa pour une couleur !
Bref je ne comprend pas par quel moyen je peux remettre mon bouton à sa couleur par défaut !
j'ai eu le même soucis quand j'ai voulu mettre le bouton à vert, dans l'éditeur si je choisi le vert dans la palette j'ai &H0000FF00&
le code Hexa de mon vert étant 00FF00 je ne comprend vraiment pas la manière dont l'éditeur de macro excel code ses couleurs...
 
merci d'avance pour votre aide


---------------
Mon Feedback  | galerie Photo
Reply

Marsh Posté le 15-12-2011 à 18:04:59   

Reply

Marsh Posté le 15-12-2011 à 23:15:50    

C'est un piège dans lequel je suis tombé, et d'autres aussi.
 
Excel a été créé il y a très longtemps, en s'inspirant de logiciels encore plus anciens. A l'époque, les triplets d'octets RGB n'existaient pas encore. On utilisait des écrans monochrome (ambre ou vert) ou bien des écrans avec des cartes graphiques pas encore très standardisées. Bref, Excel a commencé à géré les couleurs par le truchement d'une "palette".
 
C'est compliqué à expliquer. Mais il y a une excellente page où tout est présenté clairement : http://dmcritchie.mvps.org/excel/colors.htm .

Reply

Marsh Posté le 16-12-2011 à 00:29:50    

Merci pour le lien !
par contre je crois que je n'ai pas encore tout compris.
 
à un moment il met un exemple :
 
Selection.Interior.Color = &Hc8efac8
 
à quoi correspond cette couleur &Hc8efac8 je ne trouve aucune correspondance dans aucune des tables au dessus :(


---------------
Mon Feedback  | galerie Photo
Reply

Marsh Posté le 16-12-2011 à 11:39:43    

Bien vu !
 
Il y a une coquille. En fait, il voulait dire &Hc8fac8, sans le "e", car c'est ce que l'on obtient en convertissant la ligne précédente qui indique RGB(200, 250, 200), puisque 200 est c8 en hexa, 250 est fa.
 
Une chose qui peut perturber, c'est que la couleur est en réalité stockée sur 4 octets, et non pas sur 3 octets. Pour un nombre positif, on peut compléter par deux zéros devant, si on veut (ce n'est pas obligatoire, c'est fait par défaut). Pour un nombre négatif, il faudrait compléter par deux F devant.
 
Edit : Le gris d'Excel a le numéro 15 dans la palette, qui est F en hexadécimal. Donc, je crois que c'est pour ça que vous avez vu &H8000000F& . Pour le 8 du début, je n'ai pas d'explication, je ne sais pas. En tous cas, si on veut du gris, on peut dire ...ColorIndex = 15 ou ...Color = RGB(192, 192, 192).


Message édité par billgatesanonym le 16-12-2011 à 11:55:37
Reply

Marsh Posté le 16-12-2011 à 12:39:23    

merci encore pour ton aide :)
en fait le gris RGB(192, 192, 192) est un peu plus foncé que le gris par défaut
j'ai dû ruser en passant par une case excel que j'ai mis de la même couleur puis je suis allé dans "plus de couleurs" dans la mise en forme de la cellule. Là j'ai pî voir que le gris "standard" des boutons est en fait un RGB(216, 216, 216)


Message édité par snipecmoileretour le 16-12-2011 à 12:41:13

---------------
Mon Feedback  | galerie Photo
Reply

Marsh Posté le 29-09-2015 à 09:04:35    

Le code Excel VB suivant :   &H8000000F&  
à l'aide d'un logiciel de dessin et de l'outil "pipette"  Le résultat en RGB est : (212,208,200)
R:212  
G:208
B:200
A+

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed