Bonjour,
Je cherche une macro ou fonction pour transformer le code TSL en RGB, pour �viter de le refaire.
Je n'en trouve pas en VBA, et je pense que �a doit d�j� �tre fait !
Merci si vous pouvez m'aider.
Bonjour,
Je cherche une macro ou fonction pour transformer le code TSL en RGB, pour �viter de le refaire.
Je n'en trouve pas en VBA, et je pense que �a doit d�j� �tre fait !
Merci si vous pouvez m'aider.
Le lien de Kiki me semble correct...
A toi de lire et de comprendre ce que tu cherche. Dans ce lien, regarde bien le message de l'utilisateur Ucfoutu. Je pense qu'il est interressent.
Ne t'attend pas � un code tout pr�fabriqu�.
A toi de le construire...
J'ai bien compris.
Je pense que si �a existe, ce n'est pas la peine de r�-inventer la roue.
�a m'�tonne de ne rien trouver.
Je me suis tromp� dans l'intitul�.
C'est TSL vers RGB ! en VBA.
Excusez-moi
bjr,
il faut chercher en anglais (RGBToHLS)pour trouver des fonctions toutes faites
sinon il y a des API :
Code : S�lectionner tout - Visualiser dans une fen�tre � part
1
2
3 Public Declare Sub ColorRGBToHLS Lib "shlwapi.dll" (ByVal clrRGB As Long, wHue As Integer, wLuminance As Integer, wSaturation As Integer) Public Declare Function ColorHLSToRGB Lib "shlwapi.dll" (ByVal wHue As Integer, ByVal wLuminance As Integer, ByVal wSaturation As Integer) As Long
Assistant de cr�ation/modification de rubans Office
Utilisez en VBA les librairies graphiques GDI, GDI+ et openGL
Blog Office Mon Site DVP
Merci Arkham46,
Faut-il alors ajouter les librairies ?
Je ne sais pas tr�s bien manipuler �a
il suffit de mettre les deux lignes dans un module et d'appeler les fonctions comme n'importe quelle autre fonction
la librairie Shlwapi.dll est d�j� install�e (� partir de win XP/2000 d'apr�s MSDN)
Assistant de cr�ation/modification de rubans Office
Utilisez en VBA les librairies graphiques GDI, GDI+ et openGL
Blog Office Mon Site DVP
Je n'y arrive pas.
Pourrais-tu me donner un petit mod�le ?
Merci.
Insertion => Module
y coller ces deux lignes :
Et voil� par exemple pour augmenter la luminance et diminuer la saturation d'un ecouleur :
Code : S�lectionner tout - Visualiser dans une fen�tre � part
1
2 Public Declare Sub ColorRGBToHLS Lib "shlwapi.dll" (ByVal clrRGB As Long, wHue As Integer, wLuminance As Integer, wSaturation As Integer) Public Declare Function ColorHLSToRGB Lib "shlwapi.dll" (ByVal wHue As Integer, ByVal wLuminance As Integer, ByVal wSaturation As Integer) As Long
Code : S�lectionner tout - Visualiser dans une fen�tre � part
1
2
3
4
5
6
7
8
9
10
11 Dim lRGB As Long Dim lH As Integer, lS As Integer, lL As Integer ' Couleur verte lRGB = vbGreen ' Calcul des teintes / luminance / saturation ColorRGBToHLS lRGB, lH, lL, lS lL = lL * 1.5 ' augmente la luminance lS = lS * 0.5 ' diminue la saturation ' Calcul de la couleur RGB modifiée lRGB = ColorHLSToRGB(lH, lL, lS)
Assistant de cr�ation/modification de rubans Office
Utilisez en VBA les librairies graphiques GDI, GDI+ et openGL
Blog Office Mon Site DVP
Merci pour le mod�les.
Mais j'obtiens le message d'erreur :
Erreur de compilation:
Des constantes, cha�nes de longueurs fixes, tableaux, types d�finis par l'utilisateur et instructions Declare ne sont pas autoris�es comme membres Public de module d'objet
Que faire
Assistant de cr�ation/modification de rubans Office
Utilisez en VBA les librairies graphiques GDI, GDI+ et openGL
Blog Office Mon Site DVP
J'attendais que la fonction me retourne R,G,B quand on lui donne H,S,L.
Ce n'est pas ce que j'obtiens.
Ou alors, je ne sais pas m'en servir, ou je ne me suis pas bien fait comprendre.
Comment faire pour obtenir R et G et B quand on a H et S et L qui correspondent � la m�me couleur ?
Salut
Je r�pond 8 mois plus tard :p
Une couleur ici est un "long" cod� sur 24 bits tels que 8 bits soient alou�s � chaque couleur. Voici ce que fait la fonction RGB :
A partir de la couleur,pour retrouver la composante de chacune des 3 couleurs, il faut faire:
Code : S�lectionner tout - Visualiser dans une fen�tre � part couleur =256^2*R + 256*G +B
Code : S�lectionner tout - Visualiser dans une fen�tre � part
1
2
3
4 Debug.Print "R: " & Int(Couleur / (256 ^ 2)) Debug.Print "G: " & Int((Couleur /256) Mod 256 ) Debug.Print "B: " & Couleur Mod 256
J'ai d'autres questions
Comment as tu fait pour trouver Lib "shlwapi.dll"??? Je veux dire, o� puis je prendre connaissance des autres fonctions utiles pr�sentes dans ces libs? Ca m'interresse pas mal!
Tous les postes pourvus d'Excel poss�dent-ils cette lib? En effet, je souhaite utiliser ces fonctions des outils que je souhaite fournir � mes coll�gues.
Salut,va jeter un oeil sur http://msdn.microsoft.com/en-us/libr...(v=vs.85).aspx
Partager