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 :

Coordonnées écran en pixels d'une cellule


Sujet :

Macros et VBA Excel

  1. #1
    Membre éprouvé Avatar de issoram
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Janvier 2009
    Messages
    665
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Saône et Loire (Bourgogne)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Janvier 2009
    Messages : 665
    Points : 929
    Points
    929
    Par défaut Coordonnées écran en pixels d'une cellule
    Bonjour à tous,

    Sauriez vous comment obtenir les coordonnées écran (en pixels) d'une cellule (coin supérieur gauche)? Les propriétés .top et .Left (de l'objet range) ne fournissant que les coordonnées en points de la cellule par rapport à la première ligne et la première colonne.
    C'est pour aligner un Userform sur une cellule.

    Merci d'avance.

  2. #2
    Membre confirmé Avatar de Bear the french
    Homme Profil pro
    Inscrit en
    Mai 2012
    Messages
    353
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Saône et Loire (Bourgogne)

    Informations forums :
    Inscription : Mai 2012
    Messages : 353
    Points : 633
    Points
    633
    Par défaut
    Bonsoir issoram,

    Peut-être as tu déjà consulté ce post ? POST

    Bertrand

  3. #3
    Membre éprouvé Avatar de issoram
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Janvier 2009
    Messages
    665
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Saône et Loire (Bourgogne)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Janvier 2009
    Messages : 665
    Points : 929
    Points
    929
    Par défaut
    Merci Bear

    Oui je l'ai consulté, mais la fonction ActiveWindow.PointsToScreenPixelsX (ou Y) renvoie toujours la position relative de la cellule (certes en Pixels) par rapport à la première ligne et la première colonne de la fenêtre Excel.

  4. #4
    Membre éprouvé Avatar de issoram
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Janvier 2009
    Messages
    665
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Saône et Loire (Bourgogne)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Janvier 2009
    Messages : 665
    Points : 929
    Points
    929
    Par défaut
    Comme je ne trouvais pas mon bonheur, j'ai changé mon fusil d’épaule:

    Puisque mon UserForm doit s'afficher au clic droit souris, autant se servir des coordonnées de la souris!
    Du coup j'essaie d'utiliser la fonction d'API ci dessous prenant en paramètre un type point 2D:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    Public Type POINTAPI
        x As Long
        y As Long
    End Type
     
    '****** AFFECTE LES COORDONNEES DE LA SOURIS AU POINT
    Declare Function GetCursorPos Lib "user32" (lpPoint As POINTAPI) As Long
    Pour le coup, le Userform suit bien les mouvements de la souris, mais j'ai quand même un décalage d'affichage (vers le bas et vers la droite) par rapport à la position de la souris. Je pense que c'est lié au référentiel (coin haut gauche écran ou coin haut gauche Application).

    Est ce que quelqu'un sait comment pallier à ce problème de décalage?

    Merci d'avance.

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

    Informations professionnelles :
    Activité : Engineering

    Informations forums :
    Inscription : Février 2008
    Messages : 3 900
    Points : 7 964
    Points
    7 964
    Par défaut
    Bonjour,

    Quel est l'intérêt de cette usine à gaz ?
    Que se passera t-il quand tu feras un clic en bas à droite ? Ton UserForm ne sera qu'en partie visible... Pourquoi ne pas simplement le laisser s'afficher au centre de l'écran en faisant un clic droit ?

  6. #6
    Membre éprouvé Avatar de issoram
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Janvier 2009
    Messages
    665
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Saône et Loire (Bourgogne)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Janvier 2009
    Messages : 665
    Points : 929
    Points
    929
    Par défaut
    Chaque cellule génère un UF différent, donc je préférais avoir un affichage proche de la cellule pour plus de lisibilité (Dans l'esprit d'une liste déroulante ou d'un menu popup)

  7. #7
    Membre éprouvé Avatar de issoram
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Janvier 2009
    Messages
    665
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Saône et Loire (Bourgogne)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Janvier 2009
    Messages : 665
    Points : 929
    Points
    929
    Par défaut
    Finalement j'ai résolu mon problème.

    En fait le .top et le .left d'un userform attendent des coordonnées en points et pas en pixels.
    Forcément en leur passant du pixel j'avais toujours un décalage

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

Discussions similaires

  1. Obtenir la taille en pixels d'une cellule de QTableWidget
    Par chrtophe dans le forum Débuter
    Réponses: 3
    Dernier message: 26/03/2013, 20h24
  2. Récupérer les coordonnées d'un pixel dans une image
    Par amine52002 dans le forum Langage
    Réponses: 1
    Dernier message: 30/06/2008, 15h52
  3. Récupérer les coordonnées (haut gauche) d'une cellule ou d'un div
    Par pcayrol dans le forum Balisage (X)HTML et validation W3C
    Réponses: 2
    Dernier message: 28/06/2007, 15h49
  4. [Débutant] Récupérer les coordonnées d'un ensemble de pixels dans une matrice
    Par reda24 dans le forum Images
    Réponses: 5
    Dernier message: 01/06/2007, 19h06
  5. [C#] Coordonnées de pixel d'une picturebox
    Par AlexandreP dans le forum Windows Forms
    Réponses: 1
    Dernier message: 21/06/2006, 23h15

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