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 :

[VBA-E] changement de couleur d'un bouton


Sujet :

Macros et VBA Excel

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Mai 2005
    Messages
    74
    Détails du profil
    Informations personnelles :
    Localisation : France, Rhône (Rhône Alpes)

    Informations forums :
    Inscription : Mai 2005
    Messages : 74
    Points : 69
    Points
    69
    Par défaut [VBA-E] changement de couleur d'un bouton
    Bonjour,
    j'ai un bouton placé sur une feuille excel. je souhaite que lorsque l'utilisateur survole le bouton, il change de couleur. J'ai donc placé une image transparente dessous pour pouvoir utiliser les évènements MouseMove de l'image et du bouton.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     Private Sub CommandButton1_MouseMove(ByVal Button As Integer, ByVal Shift As Integer, ByVal X As Single, ByVal Y As Single)
    CommandButton1.BackColor = 4966415
    End Sub
    Private Sub Image1_MouseMove(ByVal Button As Integer, ByVal Shift As Integer, ByVal X As Single, ByVal Y As Single)
    CommandButton1.BackColor = 4966879
    End Sub
    Jusque là tout va bien.
    Le problème est le suivant:
    Si l'utilisateur clique sur l'image transparente, celle-ci s'affiche en premier plan et masque mon bouton. Pour revoir le bouton, je dois alors déplacer le curseur hors de l'image.
    J'ai essayé d'afficher le bouton sur l'évènement onclick de l'image
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    Private Sub Image1_Click()
    ActiveSheet.Shapes("CommandButton1").Select
    Selection.ShapeRange.ZOrder msoBringToFront
    End Sub
    Mais rien n'y fait.
    Je vous laisse mon fichier exemple au cas ou...

    Auriez vous des idées?
    Fichiers attachés Fichiers attachés

  2. #2
    Membre expérimenté
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    1 563
    Détails du profil
    Informations personnelles :
    Âge : 61
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 1 563
    Points : 1 691
    Points
    1 691
    Par défaut
    perso, je sais en quoi tu a fais ton bouton et ton image, mais j'ai pas trouvé le truc pour les selectionner

  3. #3
    Membre du Club
    Profil pro
    Inscrit en
    Mai 2005
    Messages
    74
    Détails du profil
    Informations personnelles :
    Localisation : France, Rhône (Rhône Alpes)

    Informations forums :
    Inscription : Mai 2005
    Messages : 74
    Points : 69
    Points
    69
    Par défaut
    Salut,
    je sais en quoi tu a fais ton bouton et ton image
    Sous excel, j'ai simplement déposé les composant sur une feuille de calcul.
    j'ai pas trouvé le truc pour les sélectionner
    Tu peux utiliser la collection Shapes :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ActiveSheet.Shapes("NomDuComposant").Select
    Pas d'autre idées si non?
    Stos

  4. #4
    Membre expérimenté
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    1 563
    Détails du profil
    Informations personnelles :
    Âge : 61
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 1 563
    Points : 1 691
    Points
    1 691
    Par défaut
    si, j'en ai une, tu peux tout simplement affecter ta macro a l'image qui se superpose au bouton.

  5. #5
    Membre du Club
    Profil pro
    Inscrit en
    Mai 2005
    Messages
    74
    Détails du profil
    Informations personnelles :
    Localisation : France, Rhône (Rhône Alpes)

    Informations forums :
    Inscription : Mai 2005
    Messages : 74
    Points : 69
    Points
    69
    Par défaut
    Par défaut l'image est en arrière plan.
    Au click sur le bouton, j'essaye de remettre le bouton au premier plan, mais rien ne se passe...
    test avec mon fichier si tu veux (cf premier post)

  6. #6
    Membre expérimenté
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    1 563
    Détails du profil
    Informations personnelles :
    Âge : 61
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 1 563
    Points : 1 691
    Points
    1 691
    Par défaut
    oui, ça change rien, c'est pas stupide ce que je viens de te dire, essaye.
    sur le bouton, tu affecte la macro qui met l'image au premier plan. et a l'image, tu affecte la macro qui doit se réaliser, c'est invisible pour l'utilisateur. quand il passe sur le bouton, il change de couleur, et quand il croit cliquer sur le bouton, en fait il clique sur l'image et il déclenche le mouvement.
    quand tu dis
    Au click sur le bouton, j'essaye de remettre le bouton au premier plan, mais rien ne se passe...
    tu vois bien que c'est incompatible, si le bouton est en arriere plan, tu ne peux pas cliquer dessus, tu clique forcement sur l'image et si au bouton tu affecte la macro qui met l'image au premier plan, tu ne peux pas en meme temps lui affecter celle qui fait action

  7. #7
    Membre du Club
    Profil pro
    Inscrit en
    Mai 2005
    Messages
    74
    Détails du profil
    Informations personnelles :
    Localisation : France, Rhône (Rhône Alpes)

    Informations forums :
    Inscription : Mai 2005
    Messages : 74
    Points : 69
    Points
    69
    Par défaut
    Autant pour moi, il fallait lire :
    Au click sur l'image, j'essaye de remettre le bouton au premier plan, mais rien ne se passe...

  8. #8
    Membre du Club
    Profil pro
    Inscrit en
    Mai 2005
    Messages
    74
    Détails du profil
    Informations personnelles :
    Localisation : France, Rhône (Rhône Alpes)

    Informations forums :
    Inscription : Mai 2005
    Messages : 74
    Points : 69
    Points
    69
    Par défaut
    Je reprends ta proposition pour voir si j'ai compris.

    Au lieu de mettre une image transparente, je mets une image(toujours en arrière plan) qui représente le bouton cliqué.
    Sur le passage sur le bouton, changement de couleur
    Sur le passage sur l'image, changement de couleur.
    Au click sur l'image, on fait l'action du click sur le bouton et on change le bouton de couleur (pour quand la souris sortira de l'image).

    J'ai bon?

  9. #9
    Membre expérimenté
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    1 563
    Détails du profil
    Informations personnelles :
    Âge : 61
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 1 563
    Points : 1 691
    Points
    1 691
    Par défaut
    j'ai du mal a te suivre
    passage sur le bouton = faire venir l'image au premier plan
    clic sur l'image = execution de ta macro
    il est évident que tant que la souris est au dessus du bouton, l'image repassera au premier plan mais des que tu sortira, elle reviendra en arierre plan

  10. #10
    Membre du Club
    Profil pro
    Inscrit en
    Mai 2005
    Messages
    74
    Détails du profil
    Informations personnelles :
    Localisation : France, Rhône (Rhône Alpes)

    Informations forums :
    Inscription : Mai 2005
    Messages : 74
    Points : 69
    Points
    69
    Par défaut
    Je crois que je me suis mal exprimé :
    passage au dessus du bouton -> couleur du bout = rouge
    passage au dessus de l'image-> couleur du bouton = vert
    click sur le bouton -> exécution code X

    le problème c'est que (sans que je fasse rien):
    Click sur l'image->image au premier, elle cache donc le bouton, c'est tout nul. Ceci même si l'image est transparente (cf fichier test).

    Une solution possible :
    au lieu de mettre une image transparente, mettre une image du bouton vert.
    click sur l'image -> on simule un click sur le bouton, l'image passe au premier plan, le bouton "devient" rouge
    ->exécution code X

    C'est pas terrible mais c'est mieux que rien

    j'espère que je suis clair

Discussions similaires

  1. [VBA-E] Changement de couleur d'un point d'une série dans un graphique ?
    Par epfyffer dans le forum Macros et VBA Excel
    Réponses: 6
    Dernier message: 26/02/2020, 11h59
  2. Réponses: 3
    Dernier message: 22/02/2008, 08h48
  3. Pas de changement de couleur d'un bouton.
    Par molo2003 dans le forum C#
    Réponses: 2
    Dernier message: 18/09/2007, 15h59
  4. [VBA-E]Changement de couleur de fond de cellule avec si
    Par fmris dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 26/03/2007, 19h21
  5. [VBA-E] Nom et couleur bouton fonction d'une cellule
    Par zouille dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 03/04/2006, 17h00

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