Voici deux macros permettant de faire des Zoom
sur une sélection d'un objet quelconque.
J'associe, par exemple, la touche de raccourci «G»
pour le Zoom avant et «R» pour le Zoom arrière.
Je maintiens «Ctrl» et «Majuscule» enfoncés et je tape
comme un fou sur «G» ou sur «R».
Il me semble que le centre de l'objet devrait rester fixe,
mais voilà, j'observe à la longue, de petits déplacements
du centre. Ce n'est pas grave, mais j'aimerais bien comprendre
la source de ces petites imprécisions de calcul ?
;-)
Serge
Sub ZoomAvant()
'Associez une touche de raccourci
'Sélectionnez un objet quelconque
Dim H As Double, W As Double
Dim L As Double, T As Double
Set s = Selection
FZ = 1.1
H = s.Height
W = s.Width
L = s.Left
T = s.Top
With s
.Height = FZ * H
.Width = FZ * W
.Left = L - (.Width - W) / 2
.Top = T - (.Height - H) / 2
End With
End Sub
Sub ZoomArrière()
'Associez une touche de raccourci
'Sélectionnez un objet quelconque
Dim H As Double, W As Double
Dim L As Double, T As Double
Set s = Selection
FZ = 0.9
H = s.Height
W = s.Width
L = s.Left
T = s.Top
With s
.Height = FZ * H
.Width = FZ * W
.Left = L - (.Width - W) / 2
.Top = T - (.Height - H) / 2
End With
End Sub
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
Nicolas B.
Salut garnote,
Les propriétés Height, Wigth, Left et Top sont toutes arrondies au 1/4 d'unité. En dézommant, tu perds donc de la précision avec les arrondis que tu ne retrouve pas en revenant en arrière. Pour être plus précis, il semble que les propriétés sont arrondies à l'inférieur car l'objet se déplace vers le haut et la gauche.
En plus du déplacement de l'objet, les lignes .Left = L - (.Width - W) / 2 .Top = T - (.Height - H) / 2 entraînent une déformation de l'objet : il s'aplatit dans le sens de son côté le plus court, là où les arrondis entraînent le plus d'imprécisions.
Voici deux macros permettant de faire des Zoom sur une sélection d'un objet quelconque. J'associe, par exemple, la touche de raccourci «G» pour le Zoom avant et «R» pour le Zoom arrière. Je maintiens «Ctrl» et «Majuscule» enfoncés et je tape comme un fou sur «G» ou sur «R». Il me semble que le centre de l'objet devrait rester fixe, mais voilà, j'observe à la longue, de petits déplacements du centre. Ce n'est pas grave, mais j'aimerais bien comprendre la source de ces petites imprécisions de calcul ?
;-)
Serge
Sub ZoomAvant() 'Associez une touche de raccourci 'Sélectionnez un objet quelconque Dim H As Double, W As Double Dim L As Double, T As Double Set s = Selection FZ = 1.1 H = s.Height W = s.Width L = s.Left T = s.Top With s .Height = FZ * H .Width = FZ * W .Left = L - (.Width - W) / 2 .Top = T - (.Height - H) / 2 End With End Sub
Sub ZoomArrière() 'Associez une touche de raccourci 'Sélectionnez un objet quelconque Dim H As Double, W As Double Dim L As Double, T As Double Set s = Selection FZ = 0.9 H = s.Height W = s.Width L = s.Left T = s.Top With s .Height = FZ * H .Width = FZ * W .Left = L - (.Width - W) / 2 .Top = T - (.Height - H) / 2 End With End Sub
Salut garnote,
Les propriétés Height, Wigth, Left et Top sont toutes arrondies au 1/4
d'unité. En dézommant, tu perds donc de la précision avec les arrondis que
tu ne retrouve pas en revenant en arrière.
Pour être plus précis, il semble que les propriétés sont arrondies à
l'inférieur car l'objet se déplace vers le haut et la gauche.
En plus du déplacement de l'objet, les lignes
.Left = L - (.Width - W) / 2
.Top = T - (.Height - H) / 2
entraînent une déformation de l'objet : il s'aplatit dans le sens de son
côté le plus court, là où les arrondis entraînent le plus d'imprécisions.
Voici deux macros permettant de faire des Zoom
sur une sélection d'un objet quelconque.
J'associe, par exemple, la touche de raccourci «G»
pour le Zoom avant et «R» pour le Zoom arrière.
Je maintiens «Ctrl» et «Majuscule» enfoncés et je tape
comme un fou sur «G» ou sur «R».
Il me semble que le centre de l'objet devrait rester fixe,
mais voilà, j'observe à la longue, de petits déplacements
du centre. Ce n'est pas grave, mais j'aimerais bien comprendre
la source de ces petites imprécisions de calcul ?
;-)
Serge
Sub ZoomAvant()
'Associez une touche de raccourci
'Sélectionnez un objet quelconque
Dim H As Double, W As Double
Dim L As Double, T As Double
Set s = Selection
FZ = 1.1
H = s.Height
W = s.Width
L = s.Left
T = s.Top
With s
.Height = FZ * H
.Width = FZ * W
.Left = L - (.Width - W) / 2
.Top = T - (.Height - H) / 2
End With
End Sub
Sub ZoomArrière()
'Associez une touche de raccourci
'Sélectionnez un objet quelconque
Dim H As Double, W As Double
Dim L As Double, T As Double
Set s = Selection
FZ = 0.9
H = s.Height
W = s.Width
L = s.Left
T = s.Top
With s
.Height = FZ * H
.Width = FZ * W
.Left = L - (.Width - W) / 2
.Top = T - (.Height - H) / 2
End With
End Sub
Les propriétés Height, Wigth, Left et Top sont toutes arrondies au 1/4 d'unité. En dézommant, tu perds donc de la précision avec les arrondis que tu ne retrouve pas en revenant en arrière. Pour être plus précis, il semble que les propriétés sont arrondies à l'inférieur car l'objet se déplace vers le haut et la gauche.
En plus du déplacement de l'objet, les lignes .Left = L - (.Width - W) / 2 .Top = T - (.Height - H) / 2 entraînent une déformation de l'objet : il s'aplatit dans le sens de son côté le plus court, là où les arrondis entraînent le plus d'imprécisions.
Voici deux macros permettant de faire des Zoom sur une sélection d'un objet quelconque. J'associe, par exemple, la touche de raccourci «G» pour le Zoom avant et «R» pour le Zoom arrière. Je maintiens «Ctrl» et «Majuscule» enfoncés et je tape comme un fou sur «G» ou sur «R». Il me semble que le centre de l'objet devrait rester fixe, mais voilà, j'observe à la longue, de petits déplacements du centre. Ce n'est pas grave, mais j'aimerais bien comprendre la source de ces petites imprécisions de calcul ?
;-)
Serge
Sub ZoomAvant() 'Associez une touche de raccourci 'Sélectionnez un objet quelconque Dim H As Double, W As Double Dim L As Double, T As Double Set s = Selection FZ = 1.1 H = s.Height W = s.Width L = s.Left T = s.Top With s .Height = FZ * H .Width = FZ * W .Left = L - (.Width - W) / 2 .Top = T - (.Height - H) / 2 End With End Sub
Sub ZoomArrière() 'Associez une touche de raccourci 'Sélectionnez un objet quelconque Dim H As Double, W As Double Dim L As Double, T As Double Set s = Selection FZ = 0.9 H = s.Height W = s.Width L = s.Left T = s.Top With s .Height = FZ * H .Width = FZ * W .Left = L - (.Width - W) / 2 .Top = T - (.Height - H) / 2 End With End Sub
garnote
Salut Nicolas,
Merci pour l'information. Mission impossible, peut-être ? M'est avis que c'est possible de garder tout ça centré et sans déformations ! À moins qu'il faille procéder autrement.
;-)
Serge
"Nicolas B." a écrit dans le message de news:
Salut garnote,
Les propriétés Height, Wigth, Left et Top sont toutes arrondies au 1/4 d'unité. En dézommant, tu perds donc de la précision avec les arrondis que tu ne retrouve pas en revenant en arrière. Pour être plus précis, il semble que les propriétés sont arrondies à l'inférieur car l'objet se déplace vers le haut et la gauche.
En plus du déplacement de l'objet, les lignes .Left = L - (.Width - W) / 2 .Top = T - (.Height - H) / 2 entraînent une déformation de l'objet : il s'aplatit dans le sens de son côté le plus court, là où les arrondis entraînent le plus d'imprécisions.
Voici deux macros permettant de faire des Zoom sur une sélection d'un objet quelconque. J'associe, par exemple, la touche de raccourci «G» pour le Zoom avant et «R» pour le Zoom arrière. Je maintiens «Ctrl» et «Majuscule» enfoncés et je tape comme un fou sur «G» ou sur «R». Il me semble que le centre de l'objet devrait rester fixe, mais voilà, j'observe à la longue, de petits déplacements du centre. Ce n'est pas grave, mais j'aimerais bien comprendre la source de ces petites imprécisions de calcul ?
;-)
Serge
Sub ZoomAvant() 'Associez une touche de raccourci 'Sélectionnez un objet quelconque Dim H As Double, W As Double Dim L As Double, T As Double Set s = Selection FZ = 1.1 H = s.Height W = s.Width L = s.Left T = s.Top With s .Height = FZ * H .Width = FZ * W .Left = L - (.Width - W) / 2 .Top = T - (.Height - H) / 2 End With End Sub
Sub ZoomArrière() 'Associez une touche de raccourci 'Sélectionnez un objet quelconque Dim H As Double, W As Double Dim L As Double, T As Double Set s = Selection FZ = 0.9 H = s.Height W = s.Width L = s.Left T = s.Top With s .Height = FZ * H .Width = FZ * W .Left = L - (.Width - W) / 2 .Top = T - (.Height - H) / 2 End With End Sub
Salut Nicolas,
Merci pour l'information.
Mission impossible, peut-être ?
M'est avis que c'est possible de garder tout ça
centré et sans déformations !
À moins qu'il faille procéder autrement.
;-)
Serge
"Nicolas B." <nicolas.bruot@adresse.bidon.com> a écrit dans le message de
news: uNamnOknDHA.1656@tk2msftngp13.phx.gbl...
Salut garnote,
Les propriétés Height, Wigth, Left et Top sont toutes arrondies au 1/4
d'unité. En dézommant, tu perds donc de la précision avec les arrondis que
tu ne retrouve pas en revenant en arrière.
Pour être plus précis, il semble que les propriétés sont arrondies à
l'inférieur car l'objet se déplace vers le haut et la gauche.
En plus du déplacement de l'objet, les lignes
.Left = L - (.Width - W) / 2
.Top = T - (.Height - H) / 2
entraînent une déformation de l'objet : il s'aplatit dans le sens de son
côté le plus court, là où les arrondis entraînent le plus d'imprécisions.
Voici deux macros permettant de faire des Zoom
sur une sélection d'un objet quelconque.
J'associe, par exemple, la touche de raccourci «G»
pour le Zoom avant et «R» pour le Zoom arrière.
Je maintiens «Ctrl» et «Majuscule» enfoncés et je tape
comme un fou sur «G» ou sur «R».
Il me semble que le centre de l'objet devrait rester fixe,
mais voilà, j'observe à la longue, de petits déplacements
du centre. Ce n'est pas grave, mais j'aimerais bien comprendre
la source de ces petites imprécisions de calcul ?
;-)
Serge
Sub ZoomAvant()
'Associez une touche de raccourci
'Sélectionnez un objet quelconque
Dim H As Double, W As Double
Dim L As Double, T As Double
Set s = Selection
FZ = 1.1
H = s.Height
W = s.Width
L = s.Left
T = s.Top
With s
.Height = FZ * H
.Width = FZ * W
.Left = L - (.Width - W) / 2
.Top = T - (.Height - H) / 2
End With
End Sub
Sub ZoomArrière()
'Associez une touche de raccourci
'Sélectionnez un objet quelconque
Dim H As Double, W As Double
Dim L As Double, T As Double
Set s = Selection
FZ = 0.9
H = s.Height
W = s.Width
L = s.Left
T = s.Top
With s
.Height = FZ * H
.Width = FZ * W
.Left = L - (.Width - W) / 2
.Top = T - (.Height - H) / 2
End With
End Sub
Merci pour l'information. Mission impossible, peut-être ? M'est avis que c'est possible de garder tout ça centré et sans déformations ! À moins qu'il faille procéder autrement.
;-)
Serge
"Nicolas B." a écrit dans le message de news:
Salut garnote,
Les propriétés Height, Wigth, Left et Top sont toutes arrondies au 1/4 d'unité. En dézommant, tu perds donc de la précision avec les arrondis que tu ne retrouve pas en revenant en arrière. Pour être plus précis, il semble que les propriétés sont arrondies à l'inférieur car l'objet se déplace vers le haut et la gauche.
En plus du déplacement de l'objet, les lignes .Left = L - (.Width - W) / 2 .Top = T - (.Height - H) / 2 entraînent une déformation de l'objet : il s'aplatit dans le sens de son côté le plus court, là où les arrondis entraînent le plus d'imprécisions.
Voici deux macros permettant de faire des Zoom sur une sélection d'un objet quelconque. J'associe, par exemple, la touche de raccourci «G» pour le Zoom avant et «R» pour le Zoom arrière. Je maintiens «Ctrl» et «Majuscule» enfoncés et je tape comme un fou sur «G» ou sur «R». Il me semble que le centre de l'objet devrait rester fixe, mais voilà, j'observe à la longue, de petits déplacements du centre. Ce n'est pas grave, mais j'aimerais bien comprendre la source de ces petites imprécisions de calcul ?
;-)
Serge
Sub ZoomAvant() 'Associez une touche de raccourci 'Sélectionnez un objet quelconque Dim H As Double, W As Double Dim L As Double, T As Double Set s = Selection FZ = 1.1 H = s.Height W = s.Width L = s.Left T = s.Top With s .Height = FZ * H .Width = FZ * W .Left = L - (.Width - W) / 2 .Top = T - (.Height - H) / 2 End With End Sub
Sub ZoomArrière() 'Associez une touche de raccourci 'Sélectionnez un objet quelconque Dim H As Double, W As Double Dim L As Double, T As Double Set s = Selection FZ = 0.9 H = s.Height W = s.Width L = s.Left T = s.Top With s .Height = FZ * H .Width = FZ * W .Left = L - (.Width - W) / 2 .Top = T - (.Height - H) / 2 End With End Sub
Nicolas B.
M'est avis que c'est possible de garder tout ça centré et sans déformations !
Je vois deux solutions :
La première effectue toutes les opérations de zoom dans une variable (définie en dehors de la macro) sans arrondir puis affecte à la propriété la valeur de cette variable. Exemple (juste les grandes lignes) pour Weight :
Dim WeightVal as double sub Zoom() WeightVal=FZ*WeightVal s.Weight=WeightVal end sub
Idem pour Dezoom. Le seul problème est d'affecter la valeur de départ à WeightVal (WeightVal=s.weight) avant d'effectuer toute opération de zoom.
Autre solution pour contourner ce problème : ne stocker dans une variable WeightDiff que la différence entre la valeur réelle et la valeur utilisée (celle arrondie). Lorsque la différence est supérieure à 0,25 on peut alors faire apparaître les résultats sur la valeur de la propriété. Cette solution est plus difficile à mettre en ouvre, mais elle lève le problème de la valeur initiale à donner à WeightDiff, puisqu'elle est forcément égale à 0.
Voilà pour le moment. Je cherche encore d'autres solutions éventuelles... -- Nicolas B.
Merci pour l'information. Mission impossible, peut-être ? M'est avis que c'est possible de garder tout ça centré et sans déformations ! À moins qu'il faille procéder autrement.
;-)
Serge
M'est avis que c'est possible de garder tout ça
centré et sans déformations !
Je vois deux solutions :
La première effectue toutes les opérations de zoom dans une variable
(définie en dehors de la macro) sans arrondir puis affecte à la propriété la
valeur de cette variable. Exemple (juste les grandes lignes) pour Weight :
Dim WeightVal as double
sub Zoom()
WeightVal=FZ*WeightVal
s.Weight=WeightVal
end sub
Idem pour Dezoom.
Le seul problème est d'affecter la valeur de départ à WeightVal
(WeightVal=s.weight) avant d'effectuer toute opération de zoom.
Autre solution pour contourner ce problème : ne stocker dans une variable
WeightDiff que la différence entre la valeur réelle et la valeur utilisée
(celle arrondie). Lorsque la différence est supérieure à 0,25 on peut alors
faire apparaître les résultats sur la valeur de la propriété. Cette solution
est plus difficile à mettre en ouvre, mais elle lève le problème de la
valeur initiale à donner à WeightDiff, puisqu'elle est forcément égale à 0.
Voilà pour le moment.
Je cherche encore d'autres solutions éventuelles...
--
Nicolas B.
Merci pour l'information.
Mission impossible, peut-être ?
M'est avis que c'est possible de garder tout ça
centré et sans déformations !
À moins qu'il faille procéder autrement.
M'est avis que c'est possible de garder tout ça centré et sans déformations !
Je vois deux solutions :
La première effectue toutes les opérations de zoom dans une variable (définie en dehors de la macro) sans arrondir puis affecte à la propriété la valeur de cette variable. Exemple (juste les grandes lignes) pour Weight :
Dim WeightVal as double sub Zoom() WeightVal=FZ*WeightVal s.Weight=WeightVal end sub
Idem pour Dezoom. Le seul problème est d'affecter la valeur de départ à WeightVal (WeightVal=s.weight) avant d'effectuer toute opération de zoom.
Autre solution pour contourner ce problème : ne stocker dans une variable WeightDiff que la différence entre la valeur réelle et la valeur utilisée (celle arrondie). Lorsque la différence est supérieure à 0,25 on peut alors faire apparaître les résultats sur la valeur de la propriété. Cette solution est plus difficile à mettre en ouvre, mais elle lève le problème de la valeur initiale à donner à WeightDiff, puisqu'elle est forcément égale à 0.
Voilà pour le moment. Je cherche encore d'autres solutions éventuelles... -- Nicolas B.
Merci pour l'information. Mission impossible, peut-être ? M'est avis que c'est possible de garder tout ça centré et sans déformations ! À moins qu'il faille procéder autrement.