macro pour redimensionner une forme automatique ou objet
3 réponses
morganne
Bonjour,
J'aimerais pouvoir redimensionner une forme automatique ou un objet, sans
passer par la fenêtre "propriété" de l'objet. Est ce possible d'un click sur
l'objet ou la forme cela ouvre un mini formulaire qui demande la hauteur
puis la largeur de la forme voulue puis en validant, la macro se déclenche
pour redimensionner automatiquement. Je sais faire le formulaire, avec les 2
txt pour demander les dimensions mais la macro d'éxecution, c'est autre
chose.....
(Petite remarque: en passant par "propriété" de la forme (click droit
souris), si je met une hauteur de 1cm et une longueur de 8cm, excel me met
d'office 1.01cm de haut et 7.99cm de large!!!!! quelqu'un a déjà réussi à
contourner ce problème?)
Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
Modeste
Bonsour® morganne wrote:
(Petite remarque: en passant par "propriété" de la forme (click droit souris), si je met une hauteur de 1cm et une longueur de 8cm, excel me met d'office 1.01cm de haut et 7.99cm de large!!!!! quelqu'un a déjà réussi à contourner ce problème?)
cela est du à ce que les pixels ne sont pas fractionnables !!! et qu'une conversion de dimensions en pouce, mm ou autres fait que l'on a finalement toujours des pixels entiers d'affichés comme les dimensions de pixels (variables selon les normes de constructions) sont déja en fractions de pouce ou mm l'arrondi se fait à la valeur entiere(pixel) la plus proche...
pour la premiere partie de la question : il faut affecter la macro à l'objet ou bien à un bouton ex voici le principe : dans ta macro formulaire qui récupere les valeurs hauteur, largeur (éventuellement PosX et PosY) puis active.drawingobjects.width= largeur active.drawingobjects.height= hauteur active.drawingobjects.left= PosX active.drawingobjects.top= PosY
à-propos des dimensions sur papier, je te conseille de lire ma reponse à ta question précédente ;o)))
@+
-- les news pas à jour ?? ne passez plus par votre FAI, les news à la source !!! placez ce raccourci dans la ligne de commande news://news.microsoft.com/microsoft.public.fr.excel et répondez OUI
n'oubliez pas les FAQ : http://www.excelabo.net http://dj.joss.free.fr/faq.htm http://www.faqoe.com http://faqword.free.fr
Bonsour®
morganne wrote:
(Petite remarque: en passant par "propriété" de la forme (click droit
souris), si je met une hauteur de 1cm et une longueur de 8cm, excel me met
d'office 1.01cm de haut et 7.99cm de large!!!!! quelqu'un a déjà réussi à
contourner ce problème?)
cela est du à ce que les pixels ne sont pas fractionnables !!!
et qu'une conversion de dimensions en pouce, mm ou autres fait que l'on a
finalement toujours des pixels entiers d'affichés
comme les dimensions de pixels (variables selon les normes de
constructions) sont déja en fractions de pouce ou mm
l'arrondi se fait à la valeur entiere(pixel) la plus proche...
pour la premiere partie de la question :
il faut affecter la macro à l'objet ou bien à un bouton
ex voici le principe : dans ta macro formulaire qui récupere les valeurs
hauteur, largeur (éventuellement PosX et PosY)
puis
active.drawingobjects.width= largeur
active.drawingobjects.height= hauteur
active.drawingobjects.left= PosX
active.drawingobjects.top= PosY
à-propos des dimensions sur papier, je te conseille de lire ma reponse à ta
question précédente
;o)))
@+
--
les news pas à jour ?? ne passez plus par votre FAI, les news à la source
!!!
placez ce raccourci dans la ligne de commande
news://news.microsoft.com/microsoft.public.fr.excel
et répondez OUI
n'oubliez pas les FAQ :
http://www.excelabo.net http://dj.joss.free.fr/faq.htm
http://www.faqoe.com http://faqword.free.fr
(Petite remarque: en passant par "propriété" de la forme (click droit souris), si je met une hauteur de 1cm et une longueur de 8cm, excel me met d'office 1.01cm de haut et 7.99cm de large!!!!! quelqu'un a déjà réussi à contourner ce problème?)
cela est du à ce que les pixels ne sont pas fractionnables !!! et qu'une conversion de dimensions en pouce, mm ou autres fait que l'on a finalement toujours des pixels entiers d'affichés comme les dimensions de pixels (variables selon les normes de constructions) sont déja en fractions de pouce ou mm l'arrondi se fait à la valeur entiere(pixel) la plus proche...
pour la premiere partie de la question : il faut affecter la macro à l'objet ou bien à un bouton ex voici le principe : dans ta macro formulaire qui récupere les valeurs hauteur, largeur (éventuellement PosX et PosY) puis active.drawingobjects.width= largeur active.drawingobjects.height= hauteur active.drawingobjects.left= PosX active.drawingobjects.top= PosY
à-propos des dimensions sur papier, je te conseille de lire ma reponse à ta question précédente ;o)))
@+
-- les news pas à jour ?? ne passez plus par votre FAI, les news à la source !!! placez ce raccourci dans la ligne de commande news://news.microsoft.com/microsoft.public.fr.excel et répondez OUI
n'oubliez pas les FAQ : http://www.excelabo.net http://dj.joss.free.fr/faq.htm http://www.faqoe.com http://faqword.free.fr
morganne
Bonjour,
Merci pour ta réponse.
Je pense avoir mal interprété ton code. A partir de l'objet, j'ouvre mon formulaire "userform1" . Sur ce formulaire, j'ai mis 2 textbox: "txthaut" pour la hauteur et "txtlarg" pour la largeur et un bouton pour valider "cmdvalider". A l'execution, il me met "erreur 424" objet requis. Comme tu peux le voir, mon niveau en VBA n'est pas très haut....
ActiveWindow.WindowState = xlMaximized Unload UserForm1 End Sub
"Modeste" a écrit dans le message de news:
Bonsour® morganne wrote:
(Petite remarque: en passant par "propriété" de la forme (click droit souris), si je met une hauteur de 1cm et une longueur de 8cm, excel me met d'office 1.01cm de haut et 7.99cm de large!!!!! quelqu'un a déjà réussi à contourner ce problème?)
cela est du à ce que les pixels ne sont pas fractionnables !!! et qu'une conversion de dimensions en pouce, mm ou autres fait que l'on a finalement toujours des pixels entiers d'affichés comme les dimensions de pixels (variables selon les normes de constructions) sont déja en fractions de pouce ou mm l'arrondi se fait à la valeur entiere(pixel) la plus proche...
pour la premiere partie de la question : il faut affecter la macro à l'objet ou bien à un bouton ex voici le principe : dans ta macro formulaire qui récupere les valeurs hauteur, largeur (éventuellement PosX et PosY) puis active.drawingobjects.width= largeur active.drawingobjects.height= hauteur active.drawingobjects.left= PosX active.drawingobjects.top= PosY
à-propos des dimensions sur papier, je te conseille de lire ma reponse à ta question précédente ;o)))
@+
-- les news pas à jour ?? ne passez plus par votre FAI, les news à la source !!! placez ce raccourci dans la ligne de commande news://news.microsoft.com/microsoft.public.fr.excel et répondez OUI
n'oubliez pas les FAQ : http://www.excelabo.net http://dj.joss.free.fr/faq.htm http://www.faqoe.com http://faqword.free.fr
Bonjour,
Merci pour ta réponse.
Je pense avoir mal interprété ton code. A partir de l'objet, j'ouvre mon
formulaire "userform1" . Sur ce formulaire, j'ai mis 2 textbox: "txthaut"
pour la hauteur et "txtlarg" pour la largeur et un bouton pour valider
"cmdvalider".
A l'execution, il me met "erreur 424" objet requis.
Comme tu peux le voir, mon niveau en VBA n'est pas très haut....
ActiveWindow.WindowState = xlMaximized
Unload UserForm1
End Sub
"Modeste" <nomail@nomail.net> a écrit dans le message de news:
uK74AXo8FHA.2492@TK2MSFTNGP10.phx.gbl...
Bonsour®
morganne wrote:
(Petite remarque: en passant par "propriété" de la forme (click droit
souris), si je met une hauteur de 1cm et une longueur de 8cm, excel me
met
d'office 1.01cm de haut et 7.99cm de large!!!!! quelqu'un a déjà réussi à
contourner ce problème?)
cela est du à ce que les pixels ne sont pas fractionnables !!!
et qu'une conversion de dimensions en pouce, mm ou autres fait que l'on a
finalement toujours des pixels entiers d'affichés
comme les dimensions de pixels (variables selon les normes de
constructions) sont déja en fractions de pouce ou mm
l'arrondi se fait à la valeur entiere(pixel) la plus proche...
pour la premiere partie de la question :
il faut affecter la macro à l'objet ou bien à un bouton
ex voici le principe : dans ta macro formulaire qui récupere les valeurs
hauteur, largeur (éventuellement PosX et PosY)
puis
active.drawingobjects.width= largeur
active.drawingobjects.height= hauteur
active.drawingobjects.left= PosX
active.drawingobjects.top= PosY
à-propos des dimensions sur papier, je te conseille de lire ma reponse à
ta question précédente
;o)))
@+
--
les news pas à jour ?? ne passez plus par votre FAI, les news à la source
!!!
placez ce raccourci dans la ligne de commande
news://news.microsoft.com/microsoft.public.fr.excel
et répondez OUI
n'oubliez pas les FAQ :
http://www.excelabo.net http://dj.joss.free.fr/faq.htm
http://www.faqoe.com http://faqword.free.fr
Je pense avoir mal interprété ton code. A partir de l'objet, j'ouvre mon formulaire "userform1" . Sur ce formulaire, j'ai mis 2 textbox: "txthaut" pour la hauteur et "txtlarg" pour la largeur et un bouton pour valider "cmdvalider". A l'execution, il me met "erreur 424" objet requis. Comme tu peux le voir, mon niveau en VBA n'est pas très haut....
ActiveWindow.WindowState = xlMaximized Unload UserForm1 End Sub
"Modeste" a écrit dans le message de news:
Bonsour® morganne wrote:
(Petite remarque: en passant par "propriété" de la forme (click droit souris), si je met une hauteur de 1cm et une longueur de 8cm, excel me met d'office 1.01cm de haut et 7.99cm de large!!!!! quelqu'un a déjà réussi à contourner ce problème?)
cela est du à ce que les pixels ne sont pas fractionnables !!! et qu'une conversion de dimensions en pouce, mm ou autres fait que l'on a finalement toujours des pixels entiers d'affichés comme les dimensions de pixels (variables selon les normes de constructions) sont déja en fractions de pouce ou mm l'arrondi se fait à la valeur entiere(pixel) la plus proche...
pour la premiere partie de la question : il faut affecter la macro à l'objet ou bien à un bouton ex voici le principe : dans ta macro formulaire qui récupere les valeurs hauteur, largeur (éventuellement PosX et PosY) puis active.drawingobjects.width= largeur active.drawingobjects.height= hauteur active.drawingobjects.left= PosX active.drawingobjects.top= PosY
à-propos des dimensions sur papier, je te conseille de lire ma reponse à ta question précédente ;o)))
@+
-- les news pas à jour ?? ne passez plus par votre FAI, les news à la source !!! placez ce raccourci dans la ligne de commande news://news.microsoft.com/microsoft.public.fr.excel et répondez OUI
n'oubliez pas les FAQ : http://www.excelabo.net http://dj.joss.free.fr/faq.htm http://www.faqoe.com http://faqword.free.fr
Modeste
Bonsour® morganne wrote:
Comme tu peux le voir, mon niveau en VBA n'est pas très haut....
;o))) tu t'attaques à des choses qui en VBA ne sont pas à proprement parler de niveau débutant car cela implique la connaissances préalables d'autres notions plus etendues et beaucoup plus basiques...
comme tu ne fournis pas le code de ton formulaire, il est difficile d'adapter une ebauche de solution à un cas concret. j'espère que tu saura adapter l'exemple simple rapidement fourni : http://cjoint.com/?lBad2RkXWa
dans cet exemple seuls certains objets sont associés à la macro de redimensionnement pour que cette macro s'applique implicitement à n'importe quel objet, il faudrait d'abord la modifier (application.caller n'est plus valable) de façon à ce qu'elle réponde à une proc évenementielle (module de classe) du type objet_change
par extension il serait également possible de modifier l'ordre (superposition), les couleurs( texte,trait,fond) la rotation
@+
"Modeste" a écrit dans le message de news:
Bonsour® morganne wrote:
(Petite remarque: en passant par "propriété" de la forme (click droit souris), si je met une hauteur de 1cm et une longueur de 8cm, excel me met d'office 1.01cm de haut et 7.99cm de large!!!!! quelqu'un a déjà réussi à contourner ce problème?)
cela est du à ce que les pixels ne sont pas fractionnables !!! et qu'une conversion de dimensions en pouce, mm ou autres fait que l'on a finalement toujours des pixels entiers d'affichés comme les dimensions de pixels (variables selon les normes de constructions) sont déja en fractions de pouce ou mm l'arrondi se fait à la valeur entiere(pixel) la plus proche...
pour la premiere partie de la question : il faut affecter la macro à l'objet ou bien à un bouton ex voici le principe : dans ta macro formulaire qui récupere les valeurs hauteur, largeur (éventuellement PosX et PosY) puis active.drawingobjects.width= largeur active.drawingobjects.height= hauteur active.drawingobjects.left= PosX active.drawingobjects.top= PosY
à-propos des dimensions sur papier, je te conseille de lire ma reponse à ta question précédente ;o)))
@+
-- les news pas à jour ?? ne passez plus par votre FAI, les news à la source !!! placez ce raccourci dans la ligne de commande news://news.microsoft.com/microsoft.public.fr.excel et répondez OUI
n'oubliez pas les FAQ : http://www.excelabo.net http://dj.joss.free.fr/faq.htm http://www.faqoe.com http://faqword.free.fr
-- les news pas à jour ?? ne passez plus par votre FAI, les news à la source !!! placez ce raccourci dans la ligne de commande news://news.microsoft.com/microsoft.public.fr.excel et répondez OUI
n'oubliez pas les FAQ : http://www.excelabo.net http://dj.joss.free.fr/faq.htm http://www.faqoe.com http://faqword.free.fr
Bonsour®
morganne wrote:
Comme tu peux le voir, mon niveau en VBA n'est pas très haut....
;o)))
tu t'attaques à des choses qui en VBA ne sont pas à proprement parler de
niveau débutant
car cela implique la connaissances préalables d'autres notions plus etendues
et beaucoup plus basiques...
comme tu ne fournis pas le code de ton formulaire, il est difficile
d'adapter une ebauche de solution
à un cas concret.
j'espère que tu saura adapter l'exemple simple rapidement fourni :
http://cjoint.com/?lBad2RkXWa
dans cet exemple seuls certains objets sont associés à la macro de
redimensionnement
pour que cette macro s'applique implicitement à n'importe quel objet,
il faudrait d'abord la modifier (application.caller n'est plus valable)
de façon à ce qu'elle réponde à une proc évenementielle (module de classe)
du type objet_change
par extension il serait également possible de modifier
l'ordre (superposition),
les couleurs( texte,trait,fond)
la rotation
@+
"Modeste" <nomail@nomail.net> a écrit dans le message de news:
uK74AXo8FHA.2492@TK2MSFTNGP10.phx.gbl...
Bonsour®
morganne wrote:
(Petite remarque: en passant par "propriété" de la forme (click droit
souris), si je met une hauteur de 1cm et une longueur de 8cm, excel me
met
d'office 1.01cm de haut et 7.99cm de large!!!!! quelqu'un a déjà réussi
à
contourner ce problème?)
cela est du à ce que les pixels ne sont pas fractionnables !!!
et qu'une conversion de dimensions en pouce, mm ou autres fait que l'on a
finalement toujours des pixels entiers d'affichés
comme les dimensions de pixels (variables selon les normes de
constructions) sont déja en fractions de pouce ou mm
l'arrondi se fait à la valeur entiere(pixel) la plus proche...
pour la premiere partie de la question :
il faut affecter la macro à l'objet ou bien à un bouton
ex voici le principe : dans ta macro formulaire qui récupere les valeurs
hauteur, largeur (éventuellement PosX et PosY)
puis
active.drawingobjects.width= largeur
active.drawingobjects.height= hauteur
active.drawingobjects.left= PosX
active.drawingobjects.top= PosY
à-propos des dimensions sur papier, je te conseille de lire ma reponse à
ta question précédente
;o)))
@+
--
les news pas à jour ?? ne passez plus par votre FAI, les news à la source
!!!
placez ce raccourci dans la ligne de commande
news://news.microsoft.com/microsoft.public.fr.excel
et répondez OUI
n'oubliez pas les FAQ :
http://www.excelabo.net http://dj.joss.free.fr/faq.htm
http://www.faqoe.com http://faqword.free.fr
--
les news pas à jour ?? ne passez plus par votre FAI, les news à la source
!!!
placez ce raccourci dans la ligne de commande
news://news.microsoft.com/microsoft.public.fr.excel
et répondez OUI
n'oubliez pas les FAQ :
http://www.excelabo.net http://dj.joss.free.fr/faq.htm
http://www.faqoe.com http://faqword.free.fr
Comme tu peux le voir, mon niveau en VBA n'est pas très haut....
;o))) tu t'attaques à des choses qui en VBA ne sont pas à proprement parler de niveau débutant car cela implique la connaissances préalables d'autres notions plus etendues et beaucoup plus basiques...
comme tu ne fournis pas le code de ton formulaire, il est difficile d'adapter une ebauche de solution à un cas concret. j'espère que tu saura adapter l'exemple simple rapidement fourni : http://cjoint.com/?lBad2RkXWa
dans cet exemple seuls certains objets sont associés à la macro de redimensionnement pour que cette macro s'applique implicitement à n'importe quel objet, il faudrait d'abord la modifier (application.caller n'est plus valable) de façon à ce qu'elle réponde à une proc évenementielle (module de classe) du type objet_change
par extension il serait également possible de modifier l'ordre (superposition), les couleurs( texte,trait,fond) la rotation
@+
"Modeste" a écrit dans le message de news:
Bonsour® morganne wrote:
(Petite remarque: en passant par "propriété" de la forme (click droit souris), si je met une hauteur de 1cm et une longueur de 8cm, excel me met d'office 1.01cm de haut et 7.99cm de large!!!!! quelqu'un a déjà réussi à contourner ce problème?)
cela est du à ce que les pixels ne sont pas fractionnables !!! et qu'une conversion de dimensions en pouce, mm ou autres fait que l'on a finalement toujours des pixels entiers d'affichés comme les dimensions de pixels (variables selon les normes de constructions) sont déja en fractions de pouce ou mm l'arrondi se fait à la valeur entiere(pixel) la plus proche...
pour la premiere partie de la question : il faut affecter la macro à l'objet ou bien à un bouton ex voici le principe : dans ta macro formulaire qui récupere les valeurs hauteur, largeur (éventuellement PosX et PosY) puis active.drawingobjects.width= largeur active.drawingobjects.height= hauteur active.drawingobjects.left= PosX active.drawingobjects.top= PosY
à-propos des dimensions sur papier, je te conseille de lire ma reponse à ta question précédente ;o)))
@+
-- les news pas à jour ?? ne passez plus par votre FAI, les news à la source !!! placez ce raccourci dans la ligne de commande news://news.microsoft.com/microsoft.public.fr.excel et répondez OUI
n'oubliez pas les FAQ : http://www.excelabo.net http://dj.joss.free.fr/faq.htm http://www.faqoe.com http://faqword.free.fr
-- les news pas à jour ?? ne passez plus par votre FAI, les news à la source !!! placez ce raccourci dans la ligne de commande news://news.microsoft.com/microsoft.public.fr.excel et répondez OUI
n'oubliez pas les FAQ : http://www.excelabo.net http://dj.joss.free.fr/faq.htm http://www.faqoe.com http://faqword.free.fr