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 :

Affichage d'une shape au survol puis disparition


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Femme Profil pro
    Étudiant
    Inscrit en
    Juillet 2014
    Messages
    15
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Industrie

    Informations forums :
    Inscription : Juillet 2014
    Messages : 15
    Par défaut Affichage d'une shape au survol puis disparition
    Bonjour à tous,

    J'ai créé un Bouton ActiveX sur ma Feuil1 et j'aimerais que lorsque je survole ce bouton, une ellipse s'affiche MAIS que lorsque je ne suis plus sur ce bouton, cette Ellipse disparaisse... J'ai bien l'invisibilité de ma forme à l'ouverture de mon classeur :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Private Sub Workbook_Open()
    ActiveSheet.Shapes("Ellipse 10").Visible = False
    End Sub
    Et j'ai bien l'affichage de ma forme :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Private Sub CommandButton1_MouseMove(ByVal Button As Integer, ByVal Shift As Integer, ByVal X As Single, ByVal Y As Single)
    ActiveSheet.Shapes("Ellipse 10").Visible = True
    End Sub
    Je pense que le problème vient de ma fonction .Visible dans le bouton qui devrait être remplacée par une fonction .Show mais cela ne fonctionne pas...
    Je débute et je vous avoue que je ne vois pas trop comment faire autrement...

    Merci beaucoup

  2. #2
    Inactif  

    Homme Profil pro
    cuisiniste
    Inscrit en
    Avril 2009
    Messages
    15 374
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : cuisiniste
    Secteur : Bâtiment

    Informations forums :
    Inscription : Avril 2009
    Messages : 15 374
    Billets dans le blog
    8
    Par défaut re
    et oui c'est bien ca le soucis il n'est pas prevu pour le bouton ActivX un evenement mouse out il faut ruser
    je te propose de regarder dans ma contributions comment je detecte la sortie de la souris de la surface du bouton
    C 'est ICI
    VOILA VOILA
    mes fichiers dans les contributions:
    mail avec CDO en vba et mail avec CDO en vbs dans un HTA
    survol des bouton dans userform
    prendre un cliché d'un range

    si ton problème est résolu n'oublie pas de pointer : : ça peut servir aux autres
    et n'oublie pas de voter

  3. #3
    Membre averti
    Femme Profil pro
    Étudiant
    Inscrit en
    Juillet 2014
    Messages
    15
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Industrie

    Informations forums :
    Inscription : Juillet 2014
    Messages : 15
    Par défaut
    Merci beaucoup patricktoulon,

    Je viens de regarder un peu ton code et j'ai essayé de l'adapté mais cela ne fonctionne toujours pas.
    J'ai créé un module comme tu l'as fait par contre je pense qu'il faut que j'adapte ton code à partir d'ici :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    Sub classebouton(nom, Optional couleur = vbRed, Optional couleur2 As Long = 0, Optional bout = 0)
        If couleur = vbRed And couleur2 = 0 Then couleur2 = vbWhite
        With encours
            With ActiveSheet: Set encours.ctrl = .OLEObjects(nom).Object: End With
            .coul1 = .ctrl.BackColor: .coul2 = couleur: forcoul1 = .ctrl.ForeColor: forcoul2 = couleur2:
            .ctrl.BackColor = .coul2: .ctrl.ForeColor = forcoul2: .names = nom:
            Bs = bout
        End With
        demarre 0.01
    End Sub
    Mais comment ?

    D'autre part, j'ai également gardé dans This WorkBook mon code :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Private Sub Workbook_Open()
    ActiveSheet.Shapes("Ellipse 10").Visible = False
    End Sub
    J'ai également remodulé le code associé à mon CommandButton :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Private Sub CommandButton1_MouseMove(ByVal Button As Integer, ByVal Shift As Integer, ByVal X As Single, ByVal Y As Single)
        If encours.ctrl Is Nothing Then ActiveSheet.Shapes("Ellipse 10").Visible = True
    End Sub
    Mais rien ne se passe...

    Peux-tu m'aiguiller ?

    Merci par avance

  4. #4
    Expert confirmé
    Homme Profil pro
    Inscrit en
    Août 2010
    Messages
    3 453
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Août 2010
    Messages : 3 453
    Par défaut
    Bonjour,

    Une autre solution plus simple, c'est d'utiliser un Label positionné sous le bouton et de taille supérieure au bouton sur les 4 cotés dont la valeur de la propriété "Caption" est supprimée (pas de titre) et la propriété "BackStyle" à transparent puis :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    Private Sub CommandButton1_MouseMove(ByVal Button As Integer, ByVal Shift As Integer, ByVal X As Single, ByVal Y As Single)
        ActiveSheet.Shapes("Ellipse 10").Visible = True
    End Sub
     
    Private Sub Label1_MouseMove(ByVal Button As Integer, ByVal Shift As Integer, ByVal X As Single, ByVal Y As Single)
        ActiveSheet.Shapes("Ellipse 10").Visible = False
    End Sub

  5. #5
    Expert confirmé
    Homme Profil pro
    aucune
    Inscrit en
    Avril 2016
    Messages
    7 563
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 84
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : aucune

    Informations forums :
    Inscription : Avril 2016
    Messages : 7 563
    Par défaut
    Bonjour à tous
    Mon message très personnel
    1) Qui peut croire que l'équipe de microsoft office a développé (par exemple et entre autres) l'affichage d'un commentaire de cellule sur la base d'un timer ? Personne, j'espère.
    (que personne ne s'y trompe : j'ai pris ici l'exemple de cellules car il est l'une des démonstrations de ce qu'est un mécanisme).
    2) Qui ne s'est pas encore aperçu de ce que les commentaires ajoutés à des cellules étaient (entre autres) sources de ralentissement ? Personne, j'espère

    3) qui, après lecture des points 1) et 2) ci-dessus s'interrogerait encore sur la raison pour laquelle l'équipe de Microsoft Office a préféré ne pas alourdir et ralentir encore une application déjà particulièrement lourde (Excel Exe) en ajoutant un évènement "MouseOver" à ses contrôles ? Personne, j'espère.

    4) et surtout : qui, conscient de ce qui est dit dans les points 1) à 3) ci-dessus, déciderait malgré tout de palier (et d'alourdir) à cette absence par l'ajout d'un code ralentisseur et alourdissant ?. De surcroît plus alourdissant et ralentisseur encore que ce qu'aurait développé l'équipe de Microsoft Office pour faire ce "MouseOver"...

    C'était mon message très personnel ...

    Bonne journée à tous.

  6. #6
    Membre averti
    Femme Profil pro
    Étudiant
    Inscrit en
    Juillet 2014
    Messages
    15
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Industrie

    Informations forums :
    Inscription : Juillet 2014
    Messages : 15
    Par défaut
    Citation Envoyé par Theze Voir le message
    Bonjour,

    Une autre solution plus simple, c'est d'utiliser un Label positionné sous le bouton et de taille supérieure au bouton sur les 4 cotés dont la valeur de la propriété "Caption" est supprimée (pas de titre) et la propriété "BackStyle" à transparent puis :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    Private Sub CommandButton1_MouseMove(ByVal Button As Integer, ByVal Shift As Integer, ByVal X As Single, ByVal Y As Single)
        ActiveSheet.Shapes("Ellipse 10").Visible = True
    End Sub
     
    Private Sub Label1_MouseMove(ByVal Button As Integer, ByVal Shift As Integer, ByVal X As Single, ByVal Y As Single)
        ActiveSheet.Shapes("Ellipse 10").Visible = False
    End Sub
    Merci beaucoup Theze !

    C'est exactement ce que je recherchais et c'est bien pus simple pour moi qui suis débutante !
    Bon ça a ses limites car si on passe trop vite la souris, la shape reste apparente, mais cela ira très bien !

    Merci encore

  7. #7
    Expert confirmé
    Homme Profil pro
    Inscrit en
    Août 2010
    Messages
    3 453
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Août 2010
    Messages : 3 453
    Par défaut
    Re,

    Si le Label est suffisamment grand pour capter l'événement, ça devrait aller !

Discussions similaires

  1. Affichage d'une div au survol (ou clic) d'une image
    Par felindratetedetigre dans le forum Général JavaScript
    Réponses: 5
    Dernier message: 21/02/2017, 12h19
  2. Affichage d'une div au survol
    Par KumKum007 dans le forum jQuery
    Réponses: 1
    Dernier message: 14/03/2014, 02h26
  3. Affichage d'une bulle au survol des pointeurs ?
    Par Zebulon777 dans le forum IGN API Géoportail
    Réponses: 17
    Dernier message: 18/12/2012, 11h25
  4. Affichage d'une donnée suite à survol de la souris
    Par sandrine49 dans le forum Struts 1
    Réponses: 2
    Dernier message: 15/06/2009, 12h56
  5. affichage d'un calques (?) au survol d'une image.
    Par Space Cowboy dans le forum Général JavaScript
    Réponses: 3
    Dernier message: 04/09/2005, 15h38

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