Bonjour,
Dans l'exemple ci joint je désirerai que la zone colorée soit automatiquement mise à jour dès que l'on appuie sur les flèches + ou - des contrôles "toupies".
Bien qu'ayant tenté sans succès d'utiliser en VBA "Calculate" ou "Refresh" de la feuille ou "RefreshAll" du classeur, la mise à jour de la couleur témoin ne se fait qu'en sortant du contrôle par sélection d'une cellule...
J'ai essayé en créant une macro associée au contrôle ou en utilisant le code de la feuille 1 (clic droit sur l'onglet dela feuille et "Visualiser le code").
Re : Actualiser couleur de fond en fonction d'un contrôle "toupie"
Bonjour
J'ai essayé avec une Worksheet_Change, quand même plus logique que _SelectionChange, mais chez moi ça ne marche pas non plus.
Il ne reste plus qu'à affecter aux boutons toupies une macro de module ordinaire qui le fasse. Ou prendre des boutons toupies ActiveX. Ou faire ça dans un Userform.
Remarque sans rapport avec ça: Attention, si le calcul est fait directement sur les composantes RGB, un mélange à 50% de blanc et de noir donne un gris plus sombre que celui d'un damier fin à égalité de surfaces de motifs blancs et noirs.
Re : Actualiser couleur de fond en fonction d'un contrôle "toupie"
Bonsour®
dans le code de la feuille 1
VB:
Sub Compteur6_QuandChangement()
Range("e4:f4").Interior.Color = RGB([b4], [c4], [d4])
DoEvents
End Sub
Sub Compteur7_QuandChangement()
Range("e4:f4").Interior.Color = RGB([b4], [c4], [d4])
DoEvents
End Sub
Re : Actualiser couleur de fond en fonction d'un contrôle "toupie"
Merci de vos réponses
Modeste, je n'arrive pas à faire fonctionner ton code qui pourtant me semble parfait! problème de traduction?
Compteur6_QuandChangement par --> Controlspinner6_Change?
En attendant j'ai une solution moins élégante
Dans le code de la feuille
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
'COLORIAGE DES ZONES
With Worksheets("Feuil1")
ChangementCouleur
End With
End Sub
et le code de la macro ChangementCouleur (associée aux deux contrôles toupies"
Sub ChangementCouleur()
With Worksheets("Feuil1")
.Range("E4:F4").Interior.Color = RGB(.Range("B4").Value, .Range("C4").Value, .Range("D4").Value)
End With
End Sub
La modif couleur ne prend effet que lorsqu'on relâche le bouton gauche de la souris. C'est déjà ça...
Modeste, si tu peux m'éclairer sur la mise en place de ton code
Merci d'avance
Modeste, je n'arrive pas à faire fonctionner ton code qui pourtant me semble parfait! problème de traduction?
Compteur6_QuandChangement par --> Controlspinner6_Change?
Modeste, si tu peux m'éclairer sur la mise en place de ton code
Merci d'avance
Re : Actualiser couleur de fond en fonction d'un contrôle "toupie"
Bonjour.
Au risque de me répéter, les calculs de mélanges de couleurs basés directement sur les valeurs RGB servant à coder les couleurs n'ont pas beaucoup de sens.
Pour vous en convaincre observez ces deux dégradés et dites moi celui qui vous parait le plus juste.
Le 1èr est constituée de simples interpolations linéaires de valeurs RGB entre début et fin, le second des conversions en valeurs RGB d'interpolations linéaires des quantités de lumières entre celles de début et de fin.
Re : Actualiser couleur de fond en fonction d'un contrôle "toupie"
Merci Dranreb pour ta réponse fort intéressante que je mets dans mes archives.
Pour le moment ce n'est pas la continuité des dégradés ou des gamuts qui me préoccupe mais bel et bien le mélange de deux couleurs. Mais question concernait un outil pratique et rapide pour la visualisation de la variation du mélange.
Comme tu as l'air d'être un expert en colorimétrie je me permets de t'envoyer un message privé sur mon sujet pour ton avis et conseils éventuels.
Je ne l'expose pas ici car il dépasse le cadre de la discussion. Si d'autres sont intéressés qu'ils m'envoient un message.
Merci à tous
Re : Actualiser couleur de fond en fonction d'un contrôle "toupie"
Bonjour.
Oui mais le problème du mélange est exactement pareil puisque le milieu de mon dégradé n'est plus ni moins qu'un mélange à égalité des valeurs extrêmes.
Si la quantité de lumière E est fixée par convention à 1000 pour le blanc codé G=255, pour un mélange à égalité de blanc et de noir, il me semble qu'elle doit être E=500 qui correspond à G=186 et non pas encore moins de la moitié de ça soit E=225 correspondant à G=128 !
Faire un Userform pour cet outil. Ce sera plus pratique pour colorer des Label, TextBox, Frame, voire l'Userform lui même.
Je ne peut pas tester complètement un code qui modifie des Interior.Color de cellules avec ma version d'Excel.
Je pourrais même vous écrire un petit programme en VB6 si vous voulez.