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 :

Evènement MouseLeave inconnu [XL-2010]


Sujet :

Macros et VBA Excel

  1. #1
    Membre confirmé Avatar de horemheb
    Homme Profil pro
    Enseignant Chercheur
    Inscrit en
    Novembre 2010
    Messages
    122
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 70
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Enseignant Chercheur
    Secteur : Enseignement

    Informations forums :
    Inscription : Novembre 2010
    Messages : 122
    Par défaut Evènement MouseLeave inconnu
    Bonjour, j'utilise l'évènement MouseMove pour changer la couleur d'une Image lorsque le curseur de la souris passe dessus, pas de problème . Mais je voudrais réaffecter la couleur d'origine avec l'évènement MouseLeave qui est cité par Microsoft mais qui n'apparaît pas dans l'explorateur de projet. J'ai bien MouseUp, MouseDown, etc. mais pas de MouseLeave.
    Pourriez-vous me renseigner sur ce point ?
    Merci et belle journée.

  2. #2
    Membre Expert
    Profil pro
    Inscrit en
    Juin 2009
    Messages
    652
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Juin 2009
    Messages : 652
    Par défaut
    Bonjour,

    Demande de précision :
    S'agit-il
    1) d'un contrôle Image dans un UserForm
    ou
    2) d'un OLEObject Image dans une feuille Excel
    *****
    Si c'est le cas 1, j'aurais une astuce à vous proposer sans utiliser l'évènement MouseLeave.

  3. #3
    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 heu
    bonjour

    tu peux utiliser le meme evenement mais de l'userform pour revenir a la couleur d'origine
    le principe serait de memoriser la couleur dans le tag de l'image par exemple
    et utiliser les deux evenement
    exemple
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
    Private Sub Image1_MouseMove(ByVal Button As Integer, ByVal Shift As Integer, ByVal X As Single, ByVal Y As Single)
    Image1.BackColor = vbRed 'l'image deviens rouge
    End Sub
     
    Private Sub UserForm_Activate()
    Me.Image1.Tag = Me.Image1.BackColor 'memorise dans le tag la couleur du control
    End Sub
     
    Private Sub UserForm_MouseMove(ByVal Button As Integer, ByVal Shift As Integer, ByVal X As Single, ByVal Y As Single)
    j 'efectue le changement si la condition et bonne ca evite de faire 36 fois la meme chose a chaque fois que tu bouge sur l'userform
    If Me.Image1.BackColor <> Me.Image1.Tag Then Me.Image1.BackColor = Me.Image1.Tag
    End Sub
    Et si tu a plusieur image voici un exemple avec 3 images
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
     
    Dim oldcontrol As String, ctrl As Object
     
    Private Sub Image1_MouseMove(ByVal Button As Integer, ByVal Shift As Integer, ByVal X As Single, ByVal Y As Single)
        If oldcontrol <> Image1.Name Then
            Image1.BackColor = vbRed    'l'image deviens rouge
            If oldcontrol <> "" Then Me.Controls(oldcontrol).BackColor = Me.Controls(oldcontrol).Tag
            oldcontrol = Image1.Name
        End If
    End Sub
    Private Sub Image2_MouseMove(ByVal Button As Integer, ByVal Shift As Integer, ByVal X As Single, ByVal Y As Single)
        If oldcontrol <> Image2.Name Then
            Image2.BackColor = vbRed    'l'image deviens rouge
            If oldcontrol <> "" Then Me.Controls(oldcontrol).BackColor = Me.Controls(oldcontrol).Tag
            oldcontrol = Image2.Name
        End If
    End Sub
     
    Private Sub Image3_MouseMove(ByVal Button As Integer, ByVal Shift As Integer, ByVal X As Single, ByVal Y As Single)
        If oldcontrol <> Image3.Name Then
            Image3.BackColor = vbRed    'l'image deviens rouge
            If oldcontrol <> "" Then Me.Controls(oldcontrol).BackColor = Me.Controls(oldcontrol).Tag
            oldcontrol = Image3.Name
        End If
    End Sub
    Private Sub UserForm_Activate()
    'on memorise la couleur de base de chaque controls dans leurs tag respectif
        For Each ctrl In Me.Controls
            ctrl.Tag = ctrl.BackColor
        Next
    End Sub
    Private Sub UserForm_MouseMove(ByVal Button As Integer, ByVal Shift As Integer, ByVal X As Single, ByVal Y As Single)
        If oldcontrol <> "" Then Me.Controls(oldcontrol).BackColor = Me.Controls(oldcontrol).Tag
        oldcontrol = ""
    End Sub
    Au plaisir
    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

  4. #4
    Membre confirmé Avatar de horemheb
    Homme Profil pro
    Enseignant Chercheur
    Inscrit en
    Novembre 2010
    Messages
    122
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 70
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Enseignant Chercheur
    Secteur : Enseignement

    Informations forums :
    Inscription : Novembre 2010
    Messages : 122
    Par défaut MouseLeave
    Merci pour vos réponses. Je ne cherche pas à contourner le problème, je voulais juste savoir si cet évènement MouseLeave existe (il semble donc que non).

    Quant à l'origine de mon image j'ai simplement utilisé le contrôle ActiveX que l'on trouve dans Développeur-Insérer.

    Je n'ai pas encore exploré les UserForms, je progresse lentement dans ma découverte de VBA Excel. J'aurai certainement encore l'opportunité de vous solliciter.

    Encore merci.

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

Discussions similaires

  1. Une table qui existe mais qui est inconnu! ?
    Par Nino dans le forum InterBase
    Réponses: 6
    Dernier message: 13/06/2003, 11h47
  2. Erreur de cmd GRANT/REVOKE inconnue ss MySQL323.
    Par brnvrl dans le forum Installation
    Réponses: 3
    Dernier message: 06/03/2003, 11h47
  3. Evènement sur clic droit !?
    Par soccersoft dans le forum Composants VCL
    Réponses: 6
    Dernier message: 26/12/2002, 21h39
  4. [TP]besoin d'aide pour commandes inconnues
    Par Upal dans le forum Turbo Pascal
    Réponses: 15
    Dernier message: 03/10/2002, 10h48
  5. Fonction port Inconnue...
    Par Nounours666 dans le forum Langage
    Réponses: 3
    Dernier message: 08/08/2002, 17h31

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