Macro Mise en couleur

C@thy

XLDnaute Barbatruc
Bonjour,

je cherche une macro qui mette en couleur une cellule en fonction de son code RGB et inversement (plus dur!!!) qui à partier d'une cellule en couleur donne son code RGB. Je sais qu'une telle macro existe, mais où? Avez-vous des reférences sûres??? (pas du genre : essaye d'aller voir là...)

Merci à vous.

C@thy
 

_Thierry

XLDnaute Barbatruc
Repose en paix
Bonjour C@thy, le Forum

Un seul Grand Chef à Trois PLumes a été capable de faire ceci... Je ne t'enverrai pas sur les roses ...ni essayer d'aller voir là, ou encore ici, ou encore dans un crèperie entre deux gares !

Donc voici le Code du Grand Laurent Longre :

Option Explicit

Type udtCColor
  lStructSize
As Long
  hwndOwner
As Long
  hInstance
As Long
  rgbResult
As Long
  lpCustColors
As String
  Flags
As Long
  lCustData
As Long
  lpfnHook
As Long
  lpTemplateName
As Long
End Type

Declare Function ChooseColorA Lib 'Comdlg32' (lpChooseColor As udtCColor) As Long

Sub Test()
 
Dim CColor As udtCColor
 
Dim CustColors As String * 16
 
       
With CColor
          .lStructSize = 36
          .lpCustColors = CustColors
       
End With
           
If ChooseColorA(CColor) = 0 Then Exit Sub
            MsgBox 'Code RGB de la couleur choisie : ' & CColor.rgbResult
End Sub

La fonction ChooseColorA affiche la boîte de dialogue et renvoie 0 ou 1 selon que l'utilisateur l'a annulée ou non. Le code RGB de la couleur sélectionnée se trouve ensuite dans le champ rgbResult de la variable CColor.
Laurent



Pour ce qui est faire l'inverse c'est à dire de mettre en couleur en Fonction d'un Code RGB (plus simple), c'est ce que j'ai utilisé dans ma Démo Lien supprimé

Bon Appétit C@thy et à Tous et à Toutes
@+Thierry
 

_Thierry

XLDnaute Barbatruc
Repose en paix
re Abel, C@thy, le Forum

J'ai aussi trouvé ceci en version variante toujours du Grand Maître Laurent Longre

Voici une nouvelle version qui affiche d'emblée la totalité de la boîte de dialogue et l'attache également à la fenêtre Excel comme boîte modale.
Si tu préfères une boîte de dialogue non modale, supprime la déclaration de la fonction FindWindowA ainsi que la ligne .hwndOwner = FindWindowA(0&, Application.Caption)
Laurent


Option Explicit

Type udtCColor
  lStructSize
As Long
  hwndOwner
As Long
  hInstance
As Long
  rgbResult
As Long
  lpCustColors
As String
  Flags
As Long
  lCustData
As Long
  lpfnHook
As Long
  lpTemplateName
As Long
End Type

Declare Function ChooseColorA Lib 'Comdlg32' (lpChooseColor As udtCColor) As Long
 
Declare Function FindWindowA Lib 'User32' (ByVal lpClassName As Any, ByVal lpWindowName As String) As Long

Sub Test()
 
Dim CColor As udtCColor
 
Dim CustColors As String * 16
   
With CColor
      .lStructSize = 36
      .hwndOwner = FindWindowA(0&, Application.Caption)
      .lpCustColors = CustColors
      .Flags = 2
   
End With
       
If ChooseColorA(CColor) = 0 Then Exit Sub
        MsgBox 'Code RGB de la couleur choisie : ' & CColor.rgbResult
End Sub


Vive le Roi comme tu dis Abel
(et aussi avec une pensée pour le Prince)
@+Thierry
 

C@thy

XLDnaute Barbatruc
Ah Thierry, tu sais vraiment tout! (Même où se trouve la meilleure crêperie de Paris! Lol!!!!)
Me reconnaissance envers toi était déjà éternelle, elle devient donc
infinie, incommensurable, intersidérale (d'ailleurs je suis sidérée!)

Biz et à bientôt pour de nouvelles aventures intergalactiques!!!
 

CBernardT

XLDnaute Barbatruc
Bonsoir Cathy, Abel et Thierry,


Michel-M avait posté le fichier attaché en décembre dernier.

Il a l'avantage de déterminer la couleur RGB souhaité et donne le code adéquat.

Cordialement

CBernardT [file name=Palette_Couleurs_V01.zip size=14424]http://www.excel-downloads.com/components/com_simpleboard/uploaded/files/Palette_Couleurs_V01.zip[/file]
 

Pièces jointes

  • Palette_Couleurs_V01.zip
    14.1 KB · Affichages: 305
  • Palette_Couleurs_V01.zip
    14.1 KB · Affichages: 305
  • Palette_Couleurs_V01.zip
    14.1 KB · Affichages: 311

C@thy

XLDnaute Barbatruc
Merci à vous deux, la soluce de CBernardT correspond mieux à ce que je cherche, mais ça bouge tout le temps (j'maîtrise pas encore!!!)
je vais m'inspirer de vos 2 exemples.

JOYEUSES PAQUES à tous! Et dimanche vous aurez une heure de moins à passer sur le forum!!!

Biz C@thy
 

Ti_

Nous a quitté
Repose en paix
j'ai fait ça il y a très longtemps dans un de mes programmes 'Nuancier', où on peut trouver des fonctions pour extraire les composantes R, G et B d'une couleur, l'inverse étant bien sûr possible, pour peu que la couleur donnée fasse partie de la palette de couleurs du fichier.
J'ai mis également il y a quelques jours sur le forum Vériti une macro pour ajouter un bouton permettant de sélectionner une couleur pour une cellule Excel en utilisant la boîte de dialogue Choosecolor, donc en ajustant ses composantes R, G, B (ce qui normalement n'est possible que dans les options générales)
 

Ti_

Nous a quitté
Repose en paix
j'ai fait ça il y a très longtemps dans un de mes programmes 'Nuancier', où on peut trouver des fonctions pour extraire les composantes R, G et B d'une couleur, l'inverse étant bien sûr possible, pour peu que la couleur donnée fasse partie de la palette de couleurs du fichier.
J'ai mis également il y a quelques jours sur le forum Vériti une macro pour ajouter un bouton permettant de sélectionner une couleur pour une cellule Excel en utilisant la boîte de dialogue Choosecolor, donc en ajustant ses composantes R, G, B (ce qui normalement n'est possible que dans les options générales)
 

Discussions similaires

Réponses
9
Affichages
235
Réponses
7
Affichages
676
Réponses
7
Affichages
464

Statistiques des forums

Discussions
314 011
Messages
2 104 528
Membres
109 061
dernier inscrit
nedjima