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 :

Déplacer un objet à la souris - clignotement


Sujet :

Macros et VBA Excel

  1. #1
    Nouveau membre du Club
    Homme Profil pro
    Inscrit en
    Août 2005
    Messages
    93
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Territoire de Belfort (Franche Comté)

    Informations forums :
    Inscription : Août 2005
    Messages : 93
    Points : 38
    Points
    38
    Par défaut Déplacer un objet à la souris - clignotement
    Bonjour,

    je souhaite déplacer un bouton à la souris.
    pour cela j'utilise les fonctions _MouseDown et _MouseUP.
    je souhaite donner un aperçu de la future position de l'objet, ou déplacer l'objet en même temps que le curseur, j'utilise donc _MouseMove.
    et là je me trouve devant un problème, l'objet ne suit pas exactement le curseur et il semble clignoter.

    où est l'erreur, comment corriger ce problème ?

    voici mon code vba pour Excel 2000
    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
     
    Option Explicit
    Dim XVal As Single
    Dim YVal As Single
    Dim TopVal As Single
    Dim LeftVal As Single
    Dim MoveObj As Boolean
     
    Sub CommandButton1_MouseDown(ByVal Button As Integer, ByVal Shift As Integer, ByVal X As Single, ByVal Y As Single)
        XVal = X
        YVal = Y
        TopVal = CommandButton1.Top
        LeftVal = CommandButton1.Left
        MoveObj = True
    End Sub
     
    Private Sub CommandButton1_MouseMove(ByVal Button As Integer, ByVal Shift As Integer, ByVal X As Single, ByVal Y As Single)
        If MoveObj Then
            CommandButton1.Left = LeftVal + (X - XVal)
            CommandButton1.Top = TopVal + (Y - YVal)
        End If
    End Sub
     
    Sub CommandButton1_MouseUp(ByVal Button As Integer, ByVal Shift As Integer, ByVal X As Single, ByVal Y As Single)
        CommandButton1.Left = LeftVal + (X - XVal)
        CommandButton1.Top = TopVal + (Y - YVal)
        MoveObj = False
    End Sub

  2. #2
    Inactif  

    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    4 555
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2007
    Messages : 4 555
    Points : 5 537
    Points
    5 537
    Par défaut
    Bonjour,

    Pas Excel sous la main pour (portable squatté) ...

    Mais ceci devrait marcher :

    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
    Option Explicit
    Dim ancy, ancx As Integer
     
    Private Sub CommandButton1_MouseDown(ByVal Button As Integer, ByVal Shift As Integer, ByVal X As Single, ByVal Y As Single)
      If Button = 1 Then
        ancy = Y: ancx = X
      End If
    End Sub
     
    Private Sub CommandButton1_MouseMove(ByVal Button As Integer, ByVal Shift As Integer, ByVal X As Single, ByVal Y As Single)
      If Button = 1 Then
        CommandButton1.Move CommandButton1.Left + X - ancx, _
        CommandButton1.Top + Y - ancy
      End If
    End Sub
    Déplacement avec le bouton gauche enfoncé.
    Si tu préfères le bouton droit, Change If Button = 1 par If Button = 2

  3. #3
    Nouveau membre du Club
    Homme Profil pro
    Inscrit en
    Août 2005
    Messages
    93
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Territoire de Belfort (Franche Comté)

    Informations forums :
    Inscription : Août 2005
    Messages : 93
    Points : 38
    Points
    38
    Par défaut
    J'ai le message suivant au clic sur l'objet
    "
    Erreur d'exécution '438':
    Propriété ou méthode non gérée par cet objet
    "

    nota : l'élément que je veux déplacer est un bouton créer avec la "boite à outils contrôles" et il semblerait que ce ne soit pas un Control au sens pure VB

  4. #4
    Inactif  

    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    4 555
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2007
    Messages : 4 555
    Points : 5 537
    Points
    5 537
    Par défaut
    Ton bouton est-il sur une UserForm ?

    Car chez moi (je viens enfin de le tester) ===>> aucun problème !

  5. #5
    Nouveau membre du Club
    Homme Profil pro
    Inscrit en
    Août 2005
    Messages
    93
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Territoire de Belfort (Franche Comté)

    Informations forums :
    Inscription : Août 2005
    Messages : 93
    Points : 38
    Points
    38
    Par défaut
    NON, le bouton n'est pas dans une userform mais directement sur la feuille excel.

  6. #6
    Inactif  

    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    4 555
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2007
    Messages : 4 555
    Points : 5 537
    Points
    5 537
    Par défaut
    Citation Envoyé par coyote90 Voir le message
    NON, le bouton n'est pas dans une userform mais directement sur la feuille excel.
    Voilà très exactement ce qu'il aurait fallu savoir dire depuis le tout début.
    Voilà également la démonstration de ce que seules les questions précises conduisent à des réponses précises ...

  7. #7
    Nouveau membre du Club
    Homme Profil pro
    Inscrit en
    Août 2005
    Messages
    93
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Territoire de Belfort (Franche Comté)

    Informations forums :
    Inscription : Août 2005
    Messages : 93
    Points : 38
    Points
    38
    Par défaut
    Citation Envoyé par ucfoutu Voir le message
    Voilà très exactement ce qu'il aurait fallu savoir dire depuis le tout début.
    Voilà également la démonstration de ce que seules les questions précises conduisent à des réponses précises ...
    Certe, mea culpa, mea maxima culpa...
    c'est ma faute, ma très grande faute...

    mais il y a t-il tout de même une solution ???

Discussions similaires

  1. comment déplacer un objet avec la souris
    Par domi's dans le forum AWT/Swing
    Réponses: 6
    Dernier message: 13/05/2014, 07h51
  2. Réponses: 1
    Dernier message: 23/04/2013, 22h21
  3. [DX9 - D3D] Déplacer des objets à la souris
    Par SixOfOne dans le forum DirectX
    Réponses: 7
    Dernier message: 21/11/2007, 21h07
  4. déplacer un objet avec la souris
    Par pingpong dans le forum OpenGL
    Réponses: 4
    Dernier message: 24/10/2007, 01h54
  5. Déplacer des objets en temps réel avec la souris.
    Par johnnyjohnny dans le forum MATLAB
    Réponses: 4
    Dernier message: 03/07/2007, 14h54

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