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 :

Changer la couleur d'un controle au survol de la souris


Sujet :

IHM

  1. #1
    Membre régulier
    Homme Profil pro
    Ressources humaines
    Inscrit en
    Mars 2007
    Messages
    355
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 64
    Localisation : France, Vienne (Poitou Charente)

    Informations professionnelles :
    Activité : Ressources humaines

    Informations forums :
    Inscription : Mars 2007
    Messages : 355
    Points : 119
    Points
    119
    Par défaut Changer la couleur d'un controle au survol de la souris
    Bonjour à tous,
    Je souhaiterais changer la couleur d'un contrôle au survol de la souris, mais je voudrais qu'il ne s’applique qu’au contrôle sélectionné dans un formulaire continu.
    J'ai mis ce code la couleur change mais sur tous les contrôles :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    Private Sub Id_Test_MouseMove(Button As Integer, Shift As Integer, X As Single, Y As Single)
    Id_Test.BackColor = 65535
    End Sub
     
    Private Sub Détail_MouseMove(Button As Integer, Shift As Integer, X As Single, Y As Single)
    Id_Test.BackColor = 16777215
    End Sub
    Y a t-il une ligne à ajouter?
    Merci de votre aide

  2. #2
    Nouveau Candidat au Club
    Homme Profil pro
    Inscrit en
    Avril 2010
    Messages
    6
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Avril 2010
    Messages : 6
    Points : 0
    Points
    0
    Par défaut Idée !
    tu pourrais redéclencher un traitement dans l’évènement "on paint" ... (dans les propriétés de la section détail) moi je l'utilise pour modifier la couleur couleur d'une puce (vert/orange/gris) en fonction des caractéristiques de l'enregistrement dans un formulaire continu.

    @+

    Raoul
    L'action est ma vie... l'adrénaline ma drogue !

  3. #3
    Expert confirmé
    Avatar de vodiem
    Homme Profil pro
    Vivre
    Inscrit en
    Avril 2006
    Messages
    2 895
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Vivre
    Secteur : Conseil

    Informations forums :
    Inscription : Avril 2006
    Messages : 2 895
    Points : 4 325
    Points
    4 325
    Par défaut
    Salut ThieBEN et bienvenu raoullt,

    tu ne peux pas utiliser ce genre de code en formulaire continu.
    une solution consiste à passer la valeur du survol dans un champ du recordset et utiliser la mise en forme conditionnelle.


  4. #4
    Membre régulier
    Homme Profil pro
    Ressources humaines
    Inscrit en
    Mars 2007
    Messages
    355
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 64
    Localisation : France, Vienne (Poitou Charente)

    Informations professionnelles :
    Activité : Ressources humaines

    Informations forums :
    Inscription : Mars 2007
    Messages : 355
    Points : 119
    Points
    119
    Par défaut
    Citation Envoyé par vodiem Voir le message
    Salut ThieBEN et bienvenu raoullt,

    tu ne peux pas utiliser ce genre de code en formulaire continu.
    une solution consiste à passer la valeur du survol dans un champ du recordset et utiliser la mise en forme conditionnelle.

    Ok Vodiem, mais je ne comprends pas comment utiliser la mise en forme conditionnelle. Sous quelle condition le champ va changer de couleur et comment? Je bloque
    Merci de votre aide

  5. #5
    Membre régulier
    Homme Profil pro
    Ressources humaines
    Inscrit en
    Mars 2007
    Messages
    355
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 64
    Localisation : France, Vienne (Poitou Charente)

    Informations professionnelles :
    Activité : Ressources humaines

    Informations forums :
    Inscription : Mars 2007
    Messages : 355
    Points : 119
    Points
    119
    Par défaut
    Bonjour à tous, bon je ne trouve rien à mon problème, j'ai tenté Ici mais cela ne fonctionne pas.
    Merci des conseils

  6. #6
    Expert confirmé
    Avatar de vodiem
    Homme Profil pro
    Vivre
    Inscrit en
    Avril 2006
    Messages
    2 895
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Vivre
    Secteur : Conseil

    Informations forums :
    Inscription : Avril 2006
    Messages : 2 895
    Points : 4 325
    Points
    4 325
    Par défaut
    Salut ThieBEN,

    il y a un tuto sur la mfc ici

    par exemple au survol tu mets la valeur du champ [couleur] à 1 (penser éventuellement à valider la saisie avec un refresh) et dans la mfc du control à colorier tu mets en condition "Expression" avec une expression du genre : [couleur]=1.


  7. #7
    Membre régulier
    Homme Profil pro
    Ressources humaines
    Inscrit en
    Mars 2007
    Messages
    355
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 64
    Localisation : France, Vienne (Poitou Charente)

    Informations professionnelles :
    Activité : Ressources humaines

    Informations forums :
    Inscription : Mars 2007
    Messages : 355
    Points : 119
    Points
    119
    Par défaut
    Bonjour et merci à vodiem, j'ai tenté ci-dessus, mais cela ne marche pas. Peut-on passer directement par du code vba? Faut-il créer un module, une macro pour lancer l'action?
    Merci des conseils ou solutions

  8. #8
    Expert confirmé
    Avatar de vodiem
    Homme Profil pro
    Vivre
    Inscrit en
    Avril 2006
    Messages
    2 895
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Vivre
    Secteur : Conseil

    Informations forums :
    Inscription : Avril 2006
    Messages : 2 895
    Points : 4 325
    Points
    4 325
    Par défaut
    Effectivement en survol ce ne sera pas suffisant.
    > tu peux t'inspirer du code de lebans ici pour reconnaitre l'enregistrement survolé et faire les traitements appropriés.
    > sinon plus "simplement" en provoquant un clic sur le survol, cela rend active l'enregistrement et la coloration conditionnel associée. mais à chaque déplacement de souris cela provoque un scintillement il faut y adjoindre une comparaison de changement d'enregistrement...
    tu trouveras cet exemple dans le fichier joint.

    Fichiers attachés Fichiers attachés

  9. #9
    Membre régulier
    Homme Profil pro
    Ressources humaines
    Inscrit en
    Mars 2007
    Messages
    355
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 64
    Localisation : France, Vienne (Poitou Charente)

    Informations professionnelles :
    Activité : Ressources humaines

    Informations forums :
    Inscription : Mars 2007
    Messages : 355
    Points : 119
    Points
    119
    Par défaut
    Merci Vodiem pour ton aide et conseils, avec ton exemple cela pourrais convenir sauf que le code déclenche l'ouverture d'un formulaire qui doit seulement s'ouvrir quand l'on clic sur le champ. En fait ce que je voulais, c'est que lorsque ma souris survol le champ, c'est qu'il change de couleur et qu'ensuite on puisse cliqué pour lancer l'ouverture du formulaire correspondant.
    Merci

  10. #10
    Expert confirmé
    Avatar de vodiem
    Homme Profil pro
    Vivre
    Inscrit en
    Avril 2006
    Messages
    2 895
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Vivre
    Secteur : Conseil

    Informations forums :
    Inscription : Avril 2006
    Messages : 2 895
    Points : 4 325
    Points
    4 325
    Par défaut
    j'ai bien du code fonctionnel un peu dans la logique de lebans (qui est obsolète pour les ver >2003 (voir moins, si je ne me trompe)) via scrollbar mais je trouve que c'est déjà beaucoup de code pour pas grand chose.
    je t'ai donc remis la db avec une modif mineur pour permettre ce comportement.

    Fichiers attachés Fichiers attachés

  11. #11
    Membre régulier
    Homme Profil pro
    Ressources humaines
    Inscrit en
    Mars 2007
    Messages
    355
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 64
    Localisation : France, Vienne (Poitou Charente)

    Informations professionnelles :
    Activité : Ressources humaines

    Informations forums :
    Inscription : Mars 2007
    Messages : 355
    Points : 119
    Points
    119
    Par défaut
    Encore merci Vodiem, j'ai mis le bout de code que tu as ajouté, le problème c'est que lorsque que l'on se trouve sur le champ la msgbox s'ouvre aussitôt et on ne peut pas revenir en arrière, ni circuler librement avec la souris pour parcourir les champs. Cela semble compliqué à réaliser pour un fonctionnement correct.
    Le but est de pouvoir survoler les champs (comme avec ton exemple) avec la souris affiche la couleur au survol et lorsque l'utilisateur s'arrête sur le champs qu'il a choisi, clic sur celui-ci et ouvre le Frm. Mes connaissance en VBA étant très limites je vais peut-être abandonner cette idée de survol avec changement de couleur.
    Merci de tes précieux conseils

  12. #12
    Expert confirmé
    Avatar de vodiem
    Homme Profil pro
    Vivre
    Inscrit en
    Avril 2006
    Messages
    2 895
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Vivre
    Secteur : Conseil

    Informations forums :
    Inscription : Avril 2006
    Messages : 2 895
    Points : 4 325
    Points
    4 325
    Par défaut
    Citation Envoyé par ThieBEN
    lorsque que l'on se trouve sur le champ la msgbox s'ouvre aussitôt
    dans mon dernier exemple cela fonctionne correctement.
    tu n'as sans doute pas fait les modifications nécessaire.
    le principe de la modification mineur étant de mettre un flag "isMoveClic" lorsqu'il s'agit d'un clic provenant du survol:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    If RecordSection <> CurRecordSection Then
        isMoveClic = True
        mouse_event MOUSEEVENTF_LEFTDOWN, 0, 0, 0, 0
        mouse_event MOUSEEVENTF_LEFTUP, 0, 0, 0, 0
        CurRecordSection = RecordSection
    End If
    dans la gestion du clic il suffit de vérifier ce flag:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    If isMoveClic Then
        isMoveClic = False 'fin du traitement clic via survol
    Else
        'traitement du clic...
    End If
    je ne doute pas que même avec des connaissances limitées tu devrais t'en sortir.

  13. #13
    Rédacteur/Modérateur
    Avatar de loufab
    Homme Profil pro
    Entrepreneur en solutions informatiques viables et fonctionnelles.
    Inscrit en
    Avril 2005
    Messages
    12 019
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : Entrepreneur en solutions informatiques viables et fonctionnelles.
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2005
    Messages : 12 019
    Points : 24 551
    Points
    24 551
    Par défaut
    Bonjour,

    Petite parenthèse : A parti d'ACCESS 2010 cette gestion est native. (non c'est pas de la pub )

    Cordialement,

  14. #14
    Expert confirmé
    Avatar de vodiem
    Homme Profil pro
    Vivre
    Inscrit en
    Avril 2006
    Messages
    2 895
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Vivre
    Secteur : Conseil

    Informations forums :
    Inscription : Avril 2006
    Messages : 2 895
    Points : 4 325
    Points
    4 325
    Par défaut
    Salut loufab,
    Citation Envoyé par loufab
    A parti d'ACCESS 2010 cette gestion est native.

  15. #15
    Membre régulier
    Homme Profil pro
    Ressources humaines
    Inscrit en
    Mars 2007
    Messages
    355
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 64
    Localisation : France, Vienne (Poitou Charente)

    Informations professionnelles :
    Activité : Ressources humaines

    Informations forums :
    Inscription : Mars 2007
    Messages : 355
    Points : 119
    Points
    119
    Par défaut
    Citation Envoyé par vodiem Voir le message
    dans mon dernier exemple cela fonctionne correctement.
    tu n'as sans doute pas fait les modifications nécessaire.
    le principe de la modification mineur étant de mettre un flag "isMoveClic" lorsqu'il s'agit d'un clic provenant du survol:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    If RecordSection <> CurRecordSection Then
        isMoveClic = True
        mouse_event MOUSEEVENTF_LEFTDOWN, 0, 0, 0, 0
        mouse_event MOUSEEVENTF_LEFTUP, 0, 0, 0, 0
        CurRecordSection = RecordSection
    End If
    dans la gestion du clic il suffit de vérifier ce flag:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    If isMoveClic Then
        isMoveClic = False 'fin du traitement clic via survol
    Else
        'traitement du clic...
    End If
    je ne doute pas que même avec des connaissances limitées tu devrais t'en sortir.
    J'ai bien fait les modifications mais lorsque la souris survol un champ l'action clic se déclenche et ouvre le formulaire. Je vais essayer de transmettre un exemple de ce que je souhaite faire. Peut-être que je me trompe sur la position du code.Merci de votre aide et conseils

  16. #16
    Expert confirmé
    Avatar de vodiem
    Homme Profil pro
    Vivre
    Inscrit en
    Avril 2006
    Messages
    2 895
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Vivre
    Secteur : Conseil

    Informations forums :
    Inscription : Avril 2006
    Messages : 2 895
    Points : 4 325
    Points
    4 325
    Par défaut
    Citation Envoyé par ThieBEN
    J'ai bien fait les modifications mais lorsque la souris survol un champ l'action clic se déclenche et ouvre le formulaire
    cela peut se produire aussi si la variable "isMoveClic" n'est pas déclaré en global.

Discussions similaires

  1. Changer la couleur d'une forme au survol de la souris
    Par chtrousselle dans le forum Macros et VBA Excel
    Réponses: 7
    Dernier message: 16/11/2012, 17h39
  2. [AC-2007] Changer la couleur d'un control à la réception du focus
    Par siriusalpha dans le forum IHM
    Réponses: 7
    Dernier message: 12/02/2011, 21h04
  3. Changer la couleur d'un controle
    Par jmde dans le forum VBA Access
    Réponses: 6
    Dernier message: 26/05/2008, 23h24
  4. Comment changer la couleur d'un contrôle ?
    Par HOFER dans le forum Access
    Réponses: 2
    Dernier message: 26/07/2006, 16h38
  5. Changer la couleur d'un controle
    Par tonycalv dans le forum MFC
    Réponses: 10
    Dernier message: 17/10/2005, 08h09

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