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 :

positionnement getCursorPos/addline


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre habitué
    Profil pro
    Inscrit en
    Février 2008
    Messages
    13
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2008
    Messages : 13
    Par défaut positionnement getCursorPos/addline
    Bonjour,
    J'aimerais tracer une ligne entre deux clic de souris.
    J'ai essayé en recupérant les coordonnées du curseur a l'aide de getCursorPos, et ensuite de faire un Shapes.AddLine(x, y, xx, yy), mais voila mon trait ne se place jamais exactement ou j'ai cliqué, j'ai toujours des décalage (aprés recherche sur le forum il semblerait que ce soit du a un probleme de conversion entre pixel et point ...) , bref je galere et je trouve pas la solution.

    Merci d'avance.

  2. #2
    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
    Bonjour,

    Ce que tu cherches à faire ne me semble pas vraiment réalisable parce que les coordonnées x et y de la position du curseur sont par rapport au coin supérieur gauche de l'écran et que les coordonnées des points de la ligne sont par rapport au coin supérieur gauche de la feuille.

    Voilà pourquoi le décalage.

    Eventuellement, tu places le curseur dans le coin supérieur gauche de ta feuille, tu prends note des coordonnées (exemple x = 30 et y = 130).

    Ensuite, je ne sais pas comment est fait ton code, lorsque tu définis les points de ta ligne tu fais
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ActiveSheet.Shapes.AddLine(x - 30, y - 130, xx - 30, yy - 130).Line.DashStyle = msoLineSingle
    Mais ça ne sera pas de la haute précision...

    @+

  3. #3
    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
    Par défaut
    Bonjour,

    A utiliser donc en conjonction avec la fonction "ClientToScreen" de la librairie user32 de l'API de Windows.

    A étudier...

  4. #4
    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
    Bon...j'ai essayé, comme dans mon exemple x-30 et y-130 mais ça foire, j'ai oublié un petit détail...la position de la souris est en pixel et la position de la ligne en point

    J'ai une petite question toute bête...pourquoi ne pas prendre une ligne et la tracer ?

    Citation Envoyé par ucfoutu Voir le message
    Bonjour,

    A utiliser donc en conjonction avec la fonction "ClientToScreen" de la librairie user32 de l'API de Windows.

    A étudier...
    Bien vu je ne connaissais pas

  5. #5
    Membre habitué
    Profil pro
    Inscrit en
    Février 2008
    Messages
    13
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2008
    Messages : 13
    Par défaut
    Ok je comprends mieux, l'histoire du bord de la feuille et du bord de l'ecran, mais effectivement il n'y a pas que ça car le décalage n'est pas toujours egal, donc il doit y avoir un egalement un coefficient ...

    Citation Envoyé par fring Voir le message
    J'ai une petite question toute bête...pourquoi ne pas prendre une ligne et la tracer ?
    Mes lignes ne sont pas forcement parralelle ou perpendiculaire.

    Je vais me renseigner du coté de "ClientToScreen", merci de vos repnse et si vous trouvez avant moi n'hesitez pas

  6. #6
    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
    Citation Envoyé par hugonoof Voir le message
    Mes lignes ne sont pas forcement parralelle ou perpendiculaire.
    Je ne vois pas le rapport


Discussions similaires

  1. Déplacement ou positionnement d'une fenêtre
    Par agl dans le forum C++Builder
    Réponses: 3
    Dernier message: 10/11/2003, 10h29
  2. positionnement curseur et code ansi
    Par coach dans le forum C
    Réponses: 7
    Dernier message: 04/11/2003, 00h32
  3. LinCVS - Comment positionner CVSROOT ?
    Par sequentaire dans le forum Réseau
    Réponses: 3
    Dernier message: 10/07/2003, 07h53
  4. RichEdit tjs positionner le curseur en bas du texte
    Par microseb dans le forum C++Builder
    Réponses: 2
    Dernier message: 16/05/2003, 18h48
  5. [TSynMemo] Positionnement par ligne et colonne
    Par Mercilius dans le forum Composants VCL
    Réponses: 9
    Dernier message: 16/04/2003, 17h22

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