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 :

Utiliser mousemove avec une ellipse (cercle)


Sujet :

Macros et VBA Excel

  1. #1
    Membre averti
    Inscrit en
    Octobre 2007
    Messages
    18
    Détails du profil
    Informations forums :
    Inscription : Octobre 2007
    Messages : 18
    Par défaut Utiliser mousemove avec une ellipse (cercle)
    Bonjour,
    mon problème est le suivant: la fonction mousemove ne marche pas avec les ellipse que j'ai créer et ki me permettent d'ouvrir mes userforms.
    en fait je veu utiliser la fonction mousemove afin d'afficher une image illustrative lorsque la souris passe sur une ellipse. Voila le code que j'ai tapé:

    Option Explicit
    Dim indice As Integer

    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
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    Private Sub Ellipseparametre_MouseMove(ByVal Button As Integer, ByVal Shift As Integer, ByVal X As Single, ByVal Y As Single)
      If Not indice = 1 Then
        [groupeparametre].Visible = True
        Call reinitialiser(indice)
        indice = 1
      End If
    End Sub
     
    Private Sub Ellipseinventaire_MouseMove(ByVal Button As Integer, ByVal Shift As Integer, ByVal X As Single, ByVal Y As Single)
      If Not indice = 2 Then
        [groupeinventaire].Visible = True
        Call reinitialiser(indice)
        indice = 2
      End If
    End Sub
     
    Private Sub Ellipseboncommande_MouseMove(ByVal Button As Integer, ByVal Shift As Integer, ByVal X As Single, ByVal Y As Single)
      If Not indice = 3 Then
        [groupeboncommande].Visible = True
        Call reinitialiser(indice)
        indice = 3
      End If
    End Sub
     
    Private Sub Ellipsesecurite_MouseMove(ByVal Button As Integer, ByVal Shift As Integer, ByVal X As Single, ByVal Y As Single)
      If Not indice = 4 Then
        [groupesecurite].Visible = True
        Call reinitialiser(indice)
        indice = 4
      End If
    End Sub
     
    Private Sub Ellipsecontrole_MouseMove(ByVal Button As Integer, ByVal Shift As Integer, ByVal X As Single, ByVal Y As Single)
      If Not indice = 5 Then
        [groupecontrole].Visible = True
        Call reinitialiser(indice)
        indice = 5
      End If
    End Sub
     
    Private Sub Ellipsemateriau_MouseMove(ByVal Button As Integer, ByVal Shift As Integer, ByVal X As Single, ByVal Y As Single)
      If Not indice = 6 Then
        [groupemateriau].Visible = True
        Call reinitialiser(indice)
        indice = 6
      End If
    End Sub
     
    Function convertIntBool(ByVal X As Integer) As Boolean
      If X = 0 Then
      convertIntBool = False
      End If
      If X = 1 Then
      convertIntBool = True
      End If
    End Function
     
    Sub reinitialiser(ByVal e As Integer)
      If e = 1 Then [groupeparametre].Visible = False
      If e = 2 Then [groupeinventaire].Visible = False
      If e = 3 Then [groupeboncommande].Visible = False
      If e = 4 Then [groupesecurite].Visible = False
      If e = 5 Then [groupecontrole].Visible = False
      If e = 6 Then [groupemateriau].Visible = False
    End Sub

    merci d'avance!!

  2. #2
    Inactif  
    Avatar de ouskel'n'or
    Profil pro
    Inscrit en
    Février 2005
    Messages
    12 464
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 12 464
    Par défaut
    Je vais déjà te passer une adresse http://www.developpez.net/forums/sho...d.php?t=553797
    Pour ta question : Où mets-tu tes ellipses ? Dans un userform ou dans un feuille de calculs ?
    Dans une feuille de calcul, les objets n'ont pas d'événement mousemove.
    Doivent-elles être modifiables ?

  3. #3
    Membre averti
    Inscrit en
    Octobre 2007
    Messages
    18
    Détails du profil
    Informations forums :
    Inscription : Octobre 2007
    Messages : 18
    Par défaut
    merci beaucoup
    en fait les objets sont sur une feuille de calcul.
    c'est certainement pour ça que ca ne marche pas.
    mais alors il faut nécessairement créer un formulaire??

  4. #4
    Inactif  
    Avatar de ouskel'n'or
    Profil pro
    Inscrit en
    Février 2005
    Messages
    12 464
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 12 464
    Par défaut
    Je viens juste d'apprendre par hasard que je t'avais dit une bêtise
    Regarde ici et ouvre le fichier joint. Cet animal de fring me tourne en ridicule C'est bien de lui !
    Peut-être la solution proposée te conviendra-t-elle...
    Bonne chance

  5. #5
    Expert confirmé
    Avatar de fring
    Homme Profil pro
    Engineering
    Inscrit en
    Février 2008
    Messages
    3 900
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 62
    Localisation : Belgique

    Informations professionnelles :
    Activité : Engineering

    Informations forums :
    Inscription : Février 2008
    Messages : 3 900
    Par défaut
    Non non mon cher Ousk, tu as tout à fait raison, les formes automatiques n'acceptent pas l'évènement MouseMove, mon exemple utilise un contrôle ce qui n'est pas vraiment ressemblant à une ellipse

    EDIT : ci-joint un petit bricolage qui pourrait peut-être convenir

    Ellipse.zip

  6. #6
    Inactif  
    Avatar de ouskel'n'or
    Profil pro
    Inscrit en
    Février 2005
    Messages
    12 464
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 12 464
    Par défaut
    Bon. Pour me racheter, j'ai trituré le code de fring afin de pouvoir redimensionner l'ellipse.
    Ce que j'ai fait est très empirique et demande que le clic de la souris reste appuyé pour redimensionner l'image... si c'est bien ce que tu veux faire... parce que dans le fond du fond, "on ne sait toujours pas ce que tu veux fabriquer avec"

    Dans le label, sont affichés les largeur et hauteur de l'ellipse. Tu sauras calculer ses rayons ?

    Comment ça marche ?
    Tu déplaces la souris "MouseDown" dans l'ellipse
    Vers la droite ça l'agrandit en X
    Vers la gauche ça la réduit en X
    Vers le bas, ça l'agandit en Y
    Vers le haut, ça la réduit...

    Les paramètres de déplacements sont là aussi empiriques, à toi d'adapter.
    ellipse (version 2).xls
    Bonne journée

  7. #7
    Membre averti
    Inscrit en
    Octobre 2007
    Messages
    18
    Détails du profil
    Informations forums :
    Inscription : Octobre 2007
    Messages : 18
    Par défaut
    je vous remercie, j'ai réussi à le faire. En tout cas merci. voila le code que j'ai utiliser. cependant j'ai laissé tomber les ellipses, lol.

    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
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    Option Explicit
     Dim indice As Integer
     
    Private Sub parbtn_MouseMove(ByVal Button As Integer, ByVal Shift As Integer, ByVal X As Single, ByVal Y As Single)
      If Not indice = 1 Then
        [groupeparametre].Visible = True
        Call effacerEcran(indice)
        indice = 1
      End If
    End Sub
     
    Private Sub etatbtn_MouseMove(ByVal Button As Integer, ByVal Shift As Integer, ByVal X As Single, ByVal Y As Single)
      If Not indice = 2 Then
        [groupeinventaire].Visible = True
        Call effacerEcran(indice)
        indice = 2
      End If
    End Sub
     
    Private Sub cmdbtn_MouseMove(ByVal Button As Integer, ByVal Shift As Integer, ByVal X As Single, ByVal Y As Single)
      If Not indice = 3 Then
        [groupeboncommande].Visible = True
        Call effacerEcran(indice)
        indice = 3
      End If
    End Sub
     
    Private Sub Secubtn_MouseMove(ByVal Button As Integer, ByVal Shift As Integer, ByVal X As Single, ByVal Y As Single)
      If Not indice = 4 Then
        [groupesecurite].Visible = True
        Call effacerEcran(indice)
        indice = 4
      End If
    End Sub
     
    Private Sub ctrlbtn_MouseMove(ByVal Button As Integer, ByVal Shift As Integer, ByVal X As Single, ByVal Y As Single)
      If Not indice = 5 Then
        [groupecontrole].Visible = True
        Call effacerEcran(indice)
        indice = 5
      End If
    End Sub
     
    Private Sub materiaubtn_MouseMove(ByVal Button As Integer, ByVal Shift As Integer, ByVal X As Single, ByVal Y As Single)
      If Not indice = 6 Then
        [groupemateriau].Visible = True
        Call effacerEcran(indice)
        indice = 6
      End If
    End Sub
     
    Function convertIntBool(ByVal X As Integer) As Boolean
      If X = 0 Then
      convertIntBool = False
      End If
      If X = 1 Then
      convertIntBool = True
      End If
    End Function
     
    Sub effacerEcran(ByVal e As Integer)
      If e = 1 Then [groupeparametre].Visible = False
      If e = 2 Then [groupeinventaire].Visible = False
      If e = 3 Then [groupeboncommande].Visible = False
      If e = 4 Then [groupesecurite].Visible = False
      If e = 5 Then [groupecontrole].Visible = False
      If e = 6 Then [groupemateriau].Visible = False
    End Sub

  8. #8
    Modérateur
    Avatar de AlainTech
    Homme Profil pro
    Consultant informatique
    Inscrit en
    Mai 2005
    Messages
    4 235
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 71
    Localisation : Belgique

    Informations professionnelles :
    Activité : Consultant informatique
    Secteur : Finance

    Informations forums :
    Inscription : Mai 2005
    Messages : 4 235
    Par défaut
    Citation Envoyé par vietzims Voir le message
    j'ai réussi à le faire.
    Si ton problème est résolu, bouton ?

    Merci
    N'oubliez pas de cliquer sur quand vous avez obtenu ou trouvé vous-même la réponse à votre question.
    Si vous trouvez seul, pensez à poster votre solution. Elle peut servir à d'autres!
    Pensez aussi à voter pour les réponses qui vous ont aidés.
    ------------
    Je dois beaucoup de mes connaissances à mes erreurs!

Discussions similaires

  1. Utiliser NxOgre avec une carte ATI
    Par Loukhass dans le forum Ogre
    Réponses: 1
    Dernier message: 13/06/2009, 12h29
  2. Réponses: 8
    Dernier message: 13/05/2009, 18h05
  3. [VBA]Utiliser "Où" avec une variable
    Par jj bzh dans le forum SDK
    Réponses: 3
    Dernier message: 22/05/2007, 18h25
  4. [sql server]utiliser Insert avec une clé auto
    Par nourbane dans le forum ASP
    Réponses: 6
    Dernier message: 19/05/2006, 00h02
  5. Utilisation iterator avec une classe perso
    Par SteelBox dans le forum C++
    Réponses: 19
    Dernier message: 07/03/2005, 12h30

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