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

IHM Discussion :

[VBA] La valeur d'une couleur est négative!


Sujet :

IHM

  1. #1
    Membre habitué Avatar de Rodrigue
    Inscrit en
    Août 2002
    Messages
    487
    Détails du profil
    Informations forums :
    Inscription : Août 2002
    Messages : 487
    Points : 157
    Points
    157
    Par défaut [VBA] La valeur d'une couleur est négative!
    Bonjour,

    En VBA, je récupère la couleur d'un objet:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Dim BackColor As Long
    ...
    BackColor = Me.Rect.BackColor
    Cette valeur est négative. Exemple:
    -2147483609

    Je pense que c'est parce qu'il s'agit d'une Couleur appartenant à un thème d'access (j'utilise access 2007 - version anglaise)

    Comment faire pour avoir le code RVB de cette couleur, svp?

    Merci!

  2. #2
    Membre expérimenté Avatar de Gabout
    Homme Profil pro
    Utilisateur autodidacte
    Inscrit en
    Mai 2006
    Messages
    1 404
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 69
    Localisation : France, Côtes d'Armor (Bretagne)

    Informations professionnelles :
    Activité : Utilisateur autodidacte

    Informations forums :
    Inscription : Mai 2006
    Messages : 1 404
    Points : 1 683
    Points
    1 683
    Par défaut
    Re,

    En mode création, dans les propriétés du champ, tu as 3 petits points. Tu cliques sur Définir les couleurs personnalisées et tu disposes des valeurs RVB.

    C'est tout !

  3. #3
    Membre habitué Avatar de Rodrigue
    Inscrit en
    Août 2002
    Messages
    487
    Détails du profil
    Informations forums :
    Inscription : Août 2002
    Messages : 487
    Points : 157
    Points
    157
    Par défaut
    Oui oui, j'ai bien compris!

    Le problème c'est que je voudrais être capable de traiter toutes les couleurs en VBA!!! Si je choisis une couleur de Thème: "Text black".
    Je souhaiterais être capable de tracer une ligne avec cette couleur. Le problème c'est que Me.Line ne prend pas en compte, de la façon dont je l'utilise, ce genre de couleur car la valeur est négative

    Donc, je pense qu'il doit exister une fonction qui permet de récupérer quelque soit la couleur, ses composantes RGB.

  4. #4
    Membre expérimenté Avatar de Gabout
    Homme Profil pro
    Utilisateur autodidacte
    Inscrit en
    Mai 2006
    Messages
    1 404
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 69
    Localisation : France, Côtes d'Armor (Bretagne)

    Informations professionnelles :
    Activité : Utilisateur autodidacte

    Informations forums :
    Inscription : Mai 2006
    Messages : 1 404
    Points : 1 683
    Points
    1 683
    Par défaut
    As-tu essayé de faire référence à la couleur d'un champ qui possède cette couleur de "Thème", sans faire référence au nombre négatif ?
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Private Sub Form_Open(Cancel As Integer)
       Me.MaLigne.BorderColor = Me.Etiquette.BackColor
    End Sub
    Enfin, la te propose des solutions concernant les composantes RVB des couleurs : http://access.developpez.com/faq/ind...ercher=couleur

  5. #5
    Membre habitué Avatar de Rodrigue
    Inscrit en
    Août 2002
    Messages
    487
    Détails du profil
    Informations forums :
    Inscription : Août 2002
    Messages : 487
    Points : 157
    Points
    157
    Par défaut
    Ah non je n'ai pas essayé :o)

    Je me demande quand même de quel type de couleur, il s'agit... c'est plus un objet qu'un LONG.

  6. #6
    Expert éminent
    Avatar de LedZeppII
    Homme Profil pro
    Maintenance données produits
    Inscrit en
    Décembre 2005
    Messages
    4 485
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Maintenance données produits
    Secteur : Distribution

    Informations forums :
    Inscription : Décembre 2005
    Messages : 4 485
    Points : 7 759
    Points
    7 759
    Par défaut
    Bonsoir,

    Les valeurs négatives (bit de poids le plus fort à 1) ne sont pas des couleurs RGB, mais des couleurs systèmes correspondant à des éléments d'affichage Windows.
    Trouvé dans l'aide d'Access 2000 :
    Valeur            Élément d'écran
    -2147483648 : Barre de défilement
    -2147483647 : Bureau
    -2147483646 : Barre de titre active
    -2147483645 : Barre de titre inactive
    -2147483644 : Barre de menu
    -2147483643 : Fenêtre
    -2147483642 : Filet de bordure
    -2147483641 : Texte du menu
    -2147483640 : Texte de la fenêtre
    -2147483639 : Texte de la barre de titre
    -2147483638 : Bordure de la fenêtre active
    -2147483637 : Bordure de la fenêtre inactive
    -2147483636 : Espace de travail de l'application
    -2147483635 : Mettre en surbrillance
    -2147483634 : Texte sélectionné
    -2147483633 : Sommet du bouton
    -2147483632 : Ombrage du bouton
    -2147483631 : Texte grisé (désactivé)
    -2147483630 : Texte du bouton
    -2147483629 : Texte dans la barre de texte inactive
    -2147483628 : Bouton sélectionné
    -2147483627 : Ombré foncé
    -2147483626 : Ombré clair
    -2147483625 : Texte de l'Info-bulle
    -2147483624 : Fond de l'Info-bulle
    Tu peux essayer d'utiliser cette fonction de l'API Windows pour retrouver la couleur RGB.
    (à mettre dans la section "Déclarations" d'un module de code)
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Public Declare Function GetSysColor Lib "user32.dll" (ByVal nIndex As Long) As Long
    Si tu as une couleur négative dans un contrôle :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    Dim lgColor As Long
     
    lgColor = Me.LeControle.BackColor
    If lgColor < 0 Then lgColor = GetSysColor(lgColor And &H7FFFFFFF)
    Par contre je ne trouve pas à quoi correspond -2147483609

    A+

  7. #7
    Invité
    Invité(e)
    Par défaut
    Bonjour

    Peut-être une solution ici : Comment récupérer le code RGB des couleurs systèmes cela se trouve dans la FAQ Access.

    Philippe

  8. #8
    Expert éminent

    Avatar de Maxence HUBICHE
    Homme Profil pro
    Développeur SQLServer/Access
    Inscrit en
    Juin 2002
    Messages
    3 842
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 55
    Localisation : France, Val d'Oise (Île de France)

    Informations professionnelles :
    Activité : Développeur SQLServer/Access

    Informations forums :
    Inscription : Juin 2002
    Messages : 3 842
    Points : 9 197
    Points
    9 197
    Par défaut
    Citation Envoyé par LedZeppII Voir le message
    Par contre je ne trouve pas à quoi correspond -2147483609
    A la valeur minimale stockable sur un Long ...
    &H70000000 en Hexa, je crois.
    Ce qui explique le masque de bit par &H7FFFFFFF que tu cites dans ton exemple.

  9. #9
    Membre habitué Avatar de Rodrigue
    Inscrit en
    Août 2002
    Messages
    487
    Détails du profil
    Informations forums :
    Inscription : Août 2002
    Messages : 487
    Points : 157
    Points
    157
    Par défaut
    Super, merci beaucoup !

    Désolé, j'avais fouillé le web et la FAQ mais j'étais passé à côté. Pour la valeur, j'utilise Access 2007. Cela doit être nouveau par rapport au 2000.

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

Discussions similaires

  1. voir si une couleur est foncièrement différente d'une autre [php]
    Par bubuche87 dans le forum Traitement d'images
    Réponses: 12
    Dernier message: 27/06/2007, 14h14
  2. Réponses: 4
    Dernier message: 06/05/2007, 12h57
  3. [VBA-E] Savoir si une cellule est contenue dans une plage
    Par psych0o0 dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 10/05/2006, 14h12
  4. [VBA] Comment savoir si une feuille est protégée avec mdp ?
    Par JulienCEA dans le forum Macros et VBA Excel
    Réponses: 23
    Dernier message: 06/04/2006, 16h34
  5. Réponses: 2
    Dernier message: 25/02/2006, 11h04

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