IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Macros et VBA Excel Discussion :

Code TSL vers RGB en VBA


Sujet :

Macros et VBA Excel

  1. #1
    Membre éclairé
    Homme Profil pro
    retraité
    Inscrit en
    Novembre 2002
    Messages
    391
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations professionnelles :
    Activité : retraité
    Secteur : Santé

    Informations forums :
    Inscription : Novembre 2002
    Messages : 391
    Par défaut Code TSL vers RGB en VBA
    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.

  2. #2
    Expert confirmé
    Avatar de kiki29
    Homme Profil pro
    ex Observeur CGG / Analyste prog.
    Inscrit en
    Juin 2006
    Messages
    6 132
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : ex Observeur CGG / Analyste prog.

    Informations forums :
    Inscription : Juin 2006
    Messages : 6 132

  3. #3
    Membre éclairé
    Homme Profil pro
    retraité
    Inscrit en
    Novembre 2002
    Messages
    391
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations professionnelles :
    Activité : retraité
    Secteur : Santé

    Informations forums :
    Inscription : Novembre 2002
    Messages : 391
    Par défaut
    Merci kiki29, mais ce n'est pas du VBA.

  4. #4
    Membre éprouvé
    Homme Profil pro
    Formateur en informatique
    Inscrit en
    Janvier 2007
    Messages
    1 144
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Vienne (Poitou Charente)

    Informations professionnelles :
    Activité : Formateur en informatique

    Informations forums :
    Inscription : Janvier 2007
    Messages : 1 144
    Par défaut
    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...

  5. #5
    Membre éclairé
    Homme Profil pro
    retraité
    Inscrit en
    Novembre 2002
    Messages
    391
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations professionnelles :
    Activité : retraité
    Secteur : Santé

    Informations forums :
    Inscription : Novembre 2002
    Messages : 391
    Par défaut
    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

  6. #6
    Expert confirmé
    Avatar de Arkham46
    Profil pro
    Inscrit en
    Septembre 2003
    Messages
    5 865
    Détails du profil
    Informations personnelles :
    Localisation : France, Loiret (Centre)

    Informations forums :
    Inscription : Septembre 2003
    Messages : 5 865
    Par défaut
    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

  7. #7
    Membre éclairé
    Homme Profil pro
    retraité
    Inscrit en
    Novembre 2002
    Messages
    391
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations professionnelles :
    Activité : retraité
    Secteur : Santé

    Informations forums :
    Inscription : Novembre 2002
    Messages : 391
    Par défaut
    Merci Arkham46,

    Faut-il alors ajouter les librairies ?
    Je ne sais pas très bien manipuler ça

  8. #8
    Expert confirmé
    Avatar de Arkham46
    Profil pro
    Inscrit en
    Septembre 2003
    Messages
    5 865
    Détails du profil
    Informations personnelles :
    Localisation : France, Loiret (Centre)

    Informations forums :
    Inscription : Septembre 2003
    Messages : 5 865
    Par défaut
    Citation Envoyé par flamel Voir le message
    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)

  9. #9
    Membre éclairé
    Homme Profil pro
    retraité
    Inscrit en
    Novembre 2002
    Messages
    391
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations professionnelles :
    Activité : retraité
    Secteur : Santé

    Informations forums :
    Inscription : Novembre 2002
    Messages : 391
    Par défaut
    Je n'y arrive pas.
    Pourrais-tu me donner un petit modèle ?
    Merci.

  10. #10
    Expert confirmé
    Avatar de Arkham46
    Profil pro
    Inscrit en
    Septembre 2003
    Messages
    5 865
    Détails du profil
    Informations personnelles :
    Localisation : France, Loiret (Centre)

    Informations forums :
    Inscription : Septembre 2003
    Messages : 5 865
    Par défaut
    Insertion => Module
    y coller ces deux lignes :
    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
    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
    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)

  11. #11
    Membre éclairé
    Homme Profil pro
    retraité
    Inscrit en
    Novembre 2002
    Messages
    391
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations professionnelles :
    Activité : retraité
    Secteur : Santé

    Informations forums :
    Inscription : Novembre 2002
    Messages : 391
    Par défaut
    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
    Images attachées Images attachées  

  12. #12
    Expert confirmé
    Avatar de Arkham46
    Profil pro
    Inscrit en
    Septembre 2003
    Messages
    5 865
    Détails du profil
    Informations personnelles :
    Localisation : France, Loiret (Centre)

    Informations forums :
    Inscription : Septembre 2003
    Messages : 5 865
    Par défaut
    Citation Envoyé par flamel Voir le message
    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
    les deux déclarations "Public Declare ..." doivent être placées dans un module standard (insertion => module)
    sinon changer la portée de Public en Private dans le module qui les utilisent

  13. #13
    Membre éclairé
    Homme Profil pro
    retraité
    Inscrit en
    Novembre 2002
    Messages
    391
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations professionnelles :
    Activité : retraité
    Secteur : Santé

    Informations forums :
    Inscription : Novembre 2002
    Messages : 391
    Par défaut
    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 ?

  14. #14
    Membre confirmé
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    66
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France, Rhône (Rhône Alpes)

    Informations forums :
    Inscription : Mai 2006
    Messages : 66
    Par défaut
    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 :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    couleur =256^2*R + 256*G +B
    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
    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.

  15. #15
    Expert confirmé
    Avatar de kiki29
    Homme Profil pro
    ex Observeur CGG / Analyste prog.
    Inscrit en
    Juin 2006
    Messages
    6 132
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : ex Observeur CGG / Analyste prog.

    Informations forums :
    Inscription : Juin 2006
    Messages : 6 132

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Loi de Poisson (code Matlab vers du VBA)
    Par Kiera dans le forum MATLAB
    Réponses: 0
    Dernier message: 28/06/2015, 11h51
  2. Conversion code MATLAB vers VBA
    Par viejo dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 03/07/2012, 18h06
  3. Convertir du code couleur héxa vers RGB?
    Par bylka dans le forum Balisage (X)HTML et validation W3C
    Réponses: 7
    Dernier message: 20/01/2009, 11h25
  4. retranscription de code vbs vers vba
    Par kev0631 dans le forum Général VBA
    Réponses: 1
    Dernier message: 24/04/2007, 18h46
  5. Adaptation d'un code TMemo vers TRichEdit : problème de ScrollBars
    Par Droïde Système7 dans le forum Composants VCL
    Réponses: 2
    Dernier message: 21/01/2005, 15h06

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo