Connaitre les dimensions d'un rectangle ou d'une ligne en VBA

alfazoulou

XLDnaute Occasionnel
Bonjour le forum.
Je me demandais s'il était possible en VBA de connaitre les dimensions d'un rectangle ou d'une ligne qui aurait était dessinée avec la barre d'outils dessin.
Je me doute que l'on peut faire une macro qui consisterait à ouvrir la boite de dialogue format de la forme automatique, mais ce que je voudrais c'est connaitre la hauteur et la largeur du rectangle par l'intermédiaire d'un Msgbox.

qu'en pensez vous ??
 

pierrejean

XLDnaute Barbatruc
Re : Connaitre les dimensions d'un rectangle ou d'une ligne en VBA

Re

La mesure en cm ne peut etre donnée qu'a partir de la resolution de l'ecran (elle s'exprime en ppp pixels par pouce)
le pouce vaut 2,54cm
Voici une version qui donne les dimensions en pixels
Pour les avoir en cm il te faudra faire la conversion suivante (avec R=résolution de l'ecran en ppp):
x(cm)=(2,54/R)*x(pixels)
 

Pièces jointes

  • alfazoulou.zip
    9.7 KB · Affichages: 120
  • alfazoulou.zip
    9.7 KB · Affichages: 99
  • alfazoulou.zip
    9.7 KB · Affichages: 107

alfazoulou

XLDnaute Occasionnel
Re : Connaitre les dimensions d'un rectangle ou d'une ligne en VBA

Re

La mesure en cm ne peut etre donnée qu'a partir de la resolution de l'ecran (elle s'exprime en ppp pixels par pouce)
le pouce vaut 2,54cm
Voici une version qui donne les dimensions en pixels
Pour les avoir en cm il te faudra faire la conversion suivante (avec R=résolution de l'ecran en ppp):
x(cm)=(2,54/R)*x(pixels)

ma résolution d'écran est de 1280x1024, je ne comprends pas trop la valeur R...
 

pierrejean

XLDnaute Barbatruc
Re : Connaitre les dimensions d'un rectangle ou d'une ligne en VBA

Re

On va faire simple !
Mesure la largeur de ton ecran en cm
Divise cette largeur par 2,54 ,tu auras la largeur en pouce (Lp)
La valeur R sera alors de 1280/Lp (resolution en pixels par pouces)
 

alfazoulou

XLDnaute Occasionnel
Re : Connaitre les dimensions d'un rectangle ou d'une ligne en VBA

Re

On va faire simple !
Mesure la largeur de ton ecran en cm
Divise cette largeur par 2,54 ,tu auras la largeur en pouce (Lp)
La valeur R sera alors de 1280/Lp (resolution en pixels par pouces)

je doit avoir un petit problème de compréhension aujourd'hui... c'est lundi mais bon.
comme tu me l'as indiqué je mesure la largeur de mon écran, je trouve 38 cm,
divisé par 2.54 = 14.96.
Je comprends donc que mon écran est un 15 pouces or c'est un 17 si mes souvenirs sont bons ???
 

alfazoulou

XLDnaute Occasionnel
Re : Connaitre les dimensions d'un rectangle ou d'une ligne en VBA

Re

Tes souvenirs doivent etre bons, mais si les miens ne sont pas mauvais les constructeurs caracterisent les ecrans par la diagonale et non la largeur

je m'était posé la question de la diagonale mais comme je disais c'est lundi excuse moi.
Par contre j'ai une autre question qui je l'espère sera plus pertinente.
peut on connaitre la résolution de l'écran par VBA ??
J'ai fait des recherches sur le forum en attendant tes réponses précédentes, rapides d'ailleurs, mais j'avoue n'avoir pas tout compris.
 

pierrejean

XLDnaute Barbatruc
Re : Connaitre les dimensions d'un rectangle ou d'une ligne en VBA

Re

Je n'ais rien trouvé , mais je pense qu'au mieux tu pourrais avoir la taille de l'ecran telle qu'elle est definie dans le panneau de configuration (cela tu connais )
Par contre la taille physique de l'ecran me parait inaccessible , pas plus que le pitch (ecart mini entre 2 pixels exprimé en mm : de l'ordre de 0,25 a 0,28 mm)
Or l'une ou l'autre de ces valeurs est necessaire pour connaitre la resolution d'ecran (exprimée en ppp (français pixels par pouce ) ou dpi (anglais :dot per inche) dont les valeurs les plus courantes sont 72 et 96)

Avis donc aux forumeurs qui en savent plus sur le sujet
 

alfazoulou

XLDnaute Occasionnel
Re : Connaitre les dimensions d'un rectangle ou d'une ligne en VBA

Re

Je n'ais rien trouvé , mais je pense qu'au mieux tu pourrais avoir la taille de l'ecran telle qu'elle est definie dans le panneau de configuration (cela tu connais )
Par contre la taille physique de l'ecran me parait inaccessible , pas plus que le pitch (ecart mini entre 2 pixels exprimé en mm : de l'ordre de 0,25 a 0,28 mm)
Or l'une ou l'autre de ces valeurs est necessaire pour connaitre la resolution d'ecran (exprimée en ppp (français pixels par pouce ) ou dpi (anglais :dot per inche) dont les valeurs les plus courantes sont 72 et 96)

Avis donc aux forumeurs qui en savent plus sur le sujet

Tout d'abord merci à toi de m'avoir répondu.
Je vais essayer de préciser un peu mieux ma question.
étant dans le milieu du bâtiment, maçon pour être exact, et ayant de bonnes connaissances en DAO sur différent logiciels d'archi, je me demandais s'il était possible grâce à excel de dessiner et surtout de réaliser un genre de Métré (des murs par exemple) à partir d'un dessin à l'échelle que l'on aurait importé.
Il suffirait alors de retracer les murs grâce à l'outil ligne ou de retracer les pièces grâce à l'outil rectangle pour récupérer soit dans le premier cas le linéaire total des murs soit dans le second cas la surface de chaque pièces.
Pour cela il va de soit que les dimensions doivent être exprimées en cm.
Donc si je t'ai bien compris:
il faudrait que l'utilisateur renseigne:
°La dimension de son écran (15 ou 17 pouces par exemple) par l'intermédiaire de cases à cocher.
°La résolution de son écran.
Pour ce dernier point peut on récupérer cette résolution telle qu'elle est exprimée dans le panneau de configuration par l'intermédiaire d'un code VBA?

S'il est possible d'avoir ces renseignements, je crois qu'il ne serait pas trop compliqué de développer un petit programme sympa à la portée de tous.
Encore merci.
 

alfazoulou

XLDnaute Occasionnel
Re : Connaitre les dimensions d'un rectangle ou d'une ligne en VBA

cest bon j'ai trouvé sur le forum ce qu'il me manquait.

Dim iResX As Integer
Dim iResY As Integer

iResX = GetSystemMetrics(0)
iResY = GetSystemMetrics(1)
Range("A1") = iResX
Range("A2") = iResY
 

Discussions similaires

Réponses
3
Affichages
986

Statistiques des forums

Discussions
312 753
Messages
2 091 667
Membres
105 040
dernier inscrit
PeupleVert