Bonjours,
je repose ma question differemment vu que personne ne m'a répondu :
dans le classeur de michel pierron sur le redimmensionnment dynamique
d'une
image
http://www.excelabo.net/moteurs/compteclic.php?nom=mp-dynamiccontrol
jene coumprend pas ce bout de code :
Private Sub AxeY(ByVal x%, ByVal y%, S As Boolean)
Dim Toffset!
Toffset = Image1.Top
If S Then
Image1.Height = Image1.Height - Yp + y
Image1.Top = Image1.Top - (Image1.Top - Toffset)
Else
Image1.Top = Image1.Top - Yp + y
Image1.Height = Image1.Height - (Image1.Top - Toffset)
End If
HandPos
End Sub
il est marqué que "Toffset = Image1.Top" et que "Image1.Height > Image1.Height - (Image1.Top - Toffset)"
si on simplifie la seconde formule à l'aide de la première, on obtient
"Image1.Height = Image1.Height - (Image1.Top - Toffset) = Image1.Height -
(Image1.Top - Image1.Top) = Image1.Height - (0) = Image1.Height"
donc normalement on obtient cette ligne de commande "Image1.Height > Image1.Height"
pourtant lorsqu'on fait fonctionner la macro, on s'aperçois que la hauteur
de l'image n'est pas constante.
Quelqu'un peut-il m'expliquer pourquoi ?
Bonjours,
je repose ma question differemment vu que personne ne m'a répondu :
dans le classeur de michel pierron sur le redimmensionnment dynamique
d'une
image
http://www.excelabo.net/moteurs/compteclic.php?nom=mp-dynamiccontrol
jene coumprend pas ce bout de code :
Private Sub AxeY(ByVal x%, ByVal y%, S As Boolean)
Dim Toffset!
Toffset = Image1.Top
If S Then
Image1.Height = Image1.Height - Yp + y
Image1.Top = Image1.Top - (Image1.Top - Toffset)
Else
Image1.Top = Image1.Top - Yp + y
Image1.Height = Image1.Height - (Image1.Top - Toffset)
End If
HandPos
End Sub
il est marqué que "Toffset = Image1.Top" et que "Image1.Height > Image1.Height - (Image1.Top - Toffset)"
si on simplifie la seconde formule à l'aide de la première, on obtient
"Image1.Height = Image1.Height - (Image1.Top - Toffset) = Image1.Height -
(Image1.Top - Image1.Top) = Image1.Height - (0) = Image1.Height"
donc normalement on obtient cette ligne de commande "Image1.Height > Image1.Height"
pourtant lorsqu'on fait fonctionner la macro, on s'aperçois que la hauteur
de l'image n'est pas constante.
Quelqu'un peut-il m'expliquer pourquoi ?
Bonjours,
je repose ma question differemment vu que personne ne m'a répondu :
dans le classeur de michel pierron sur le redimmensionnment dynamique
d'une
image
http://www.excelabo.net/moteurs/compteclic.php?nom=mp-dynamiccontrol
jene coumprend pas ce bout de code :
Private Sub AxeY(ByVal x%, ByVal y%, S As Boolean)
Dim Toffset!
Toffset = Image1.Top
If S Then
Image1.Height = Image1.Height - Yp + y
Image1.Top = Image1.Top - (Image1.Top - Toffset)
Else
Image1.Top = Image1.Top - Yp + y
Image1.Height = Image1.Height - (Image1.Top - Toffset)
End If
HandPos
End Sub
il est marqué que "Toffset = Image1.Top" et que "Image1.Height > Image1.Height - (Image1.Top - Toffset)"
si on simplifie la seconde formule à l'aide de la première, on obtient
"Image1.Height = Image1.Height - (Image1.Top - Toffset) = Image1.Height -
(Image1.Top - Image1.Top) = Image1.Height - (0) = Image1.Height"
donc normalement on obtient cette ligne de commande "Image1.Height > Image1.Height"
pourtant lorsqu'on fait fonctionner la macro, on s'aperçois que la hauteur
de l'image n'est pas constante.
Quelqu'un peut-il m'expliquer pourquoi ?
Bonjour Emcy;
Yp est la position y du curseur mémorisée au moment de l'appui sur le
bouton
gauche sur la souris; c'est donc une constante.
y est égal à la position verticale instantanée du curseur sur un clip
image,
lesquels sont repositionnés sur l'image en permanence s'il y a
déplacement;
vu que la hauteur des clips vaut 4 points, y varie très peu. Toffset est
égal au Top initial de l'image à l'instant t tandis que Image1.Top est la
position de l'image corrigée à l'instant t+1. A l'instant t+1, le top de
l'image n'est donc pas égal à Toffset. Pour t'en convaincre et constater
la
différence entre Toffset et Image1.Top, sur la feuille la feuille de
calcul,
inscris:
En A1:Toffset
En A2:Yp
En A3:Y
En A4:Top
En A5:Height
Puis modifie la procédure comme suit:
Private Sub AxeY(ByVal X%, ByVal Y%, S As Boolean)
Dim Toffset!
With UserForm1.Image1
Toffset = .Top
Cells(2, 1) = Toffset
Cells(2, 2) = Yp
Cells(2, 3) = Y
If S Then
.Height = .Height - Yp + Y
.Top = .Top - (.Top - Toffset)
Else
.Top = .Top - Yp + Y
.Height = .Height - (.Top - Toffset)
End If
Cells(2, 4) = .Top
Cells(2, 5) = .Height
End With
UserForm1.HandPos
End Sub
Exécute la démo et observe les différences de valeurs en faisant varier
doucement le redimensionnement.
MP
"Emcy" a écrit dans le message de
news:%23HtJV8H%Bonjours,
je repose ma question differemment vu que personne ne m'a répondu :
dans le classeur de michel pierron sur le redimmensionnment dynamique
d'uneimage
http://www.excelabo.net/moteurs/compteclic.php?nom=mp-dynamiccontrol
jene coumprend pas ce bout de code :
Private Sub AxeY(ByVal x%, ByVal y%, S As Boolean)
Dim Toffset!
Toffset = Image1.Top
If S Then
Image1.Height = Image1.Height - Yp + y
Image1.Top = Image1.Top - (Image1.Top - Toffset)
Else
Image1.Top = Image1.Top - Yp + y
Image1.Height = Image1.Height - (Image1.Top - Toffset)
End If
HandPos
End Sub
il est marqué que "Toffset = Image1.Top" et que "Image1.Height > > Image1.Height - (Image1.Top - Toffset)"
si on simplifie la seconde formule à l'aide de la première, on obtient
"Image1.Height = Image1.Height - (Image1.Top - Toffset) Image1.Height -
(Image1.Top - Image1.Top) = Image1.Height - (0) = Image1.Height"
donc normalement on obtient cette ligne de commande "Image1.Height > > Image1.Height"
pourtant lorsqu'on fait fonctionner la macro, on s'aperçois que la
hauteur
de l'image n'est pas constante.
Quelqu'un peut-il m'expliquer pourquoi ?
Bonjour Emcy;
Yp est la position y du curseur mémorisée au moment de l'appui sur le
bouton
gauche sur la souris; c'est donc une constante.
y est égal à la position verticale instantanée du curseur sur un clip
image,
lesquels sont repositionnés sur l'image en permanence s'il y a
déplacement;
vu que la hauteur des clips vaut 4 points, y varie très peu. Toffset est
égal au Top initial de l'image à l'instant t tandis que Image1.Top est la
position de l'image corrigée à l'instant t+1. A l'instant t+1, le top de
l'image n'est donc pas égal à Toffset. Pour t'en convaincre et constater
la
différence entre Toffset et Image1.Top, sur la feuille la feuille de
calcul,
inscris:
En A1:Toffset
En A2:Yp
En A3:Y
En A4:Top
En A5:Height
Puis modifie la procédure comme suit:
Private Sub AxeY(ByVal X%, ByVal Y%, S As Boolean)
Dim Toffset!
With UserForm1.Image1
Toffset = .Top
Cells(2, 1) = Toffset
Cells(2, 2) = Yp
Cells(2, 3) = Y
If S Then
.Height = .Height - Yp + Y
.Top = .Top - (.Top - Toffset)
Else
.Top = .Top - Yp + Y
.Height = .Height - (.Top - Toffset)
End If
Cells(2, 4) = .Top
Cells(2, 5) = .Height
End With
UserForm1.HandPos
End Sub
Exécute la démo et observe les différences de valeurs en faisant varier
doucement le redimensionnement.
MP
"Emcy" <ten.etsop@ycme.ycme> a écrit dans le message de
news:%23HtJV8H%23EHA.1564@TK2MSFTNGP09.phx.gbl...
Bonjours,
je repose ma question differemment vu que personne ne m'a répondu :
dans le classeur de michel pierron sur le redimmensionnment dynamique
d'une
image
http://www.excelabo.net/moteurs/compteclic.php?nom=mp-dynamiccontrol
jene coumprend pas ce bout de code :
Private Sub AxeY(ByVal x%, ByVal y%, S As Boolean)
Dim Toffset!
Toffset = Image1.Top
If S Then
Image1.Height = Image1.Height - Yp + y
Image1.Top = Image1.Top - (Image1.Top - Toffset)
Else
Image1.Top = Image1.Top - Yp + y
Image1.Height = Image1.Height - (Image1.Top - Toffset)
End If
HandPos
End Sub
il est marqué que "Toffset = Image1.Top" et que "Image1.Height > > Image1.Height - (Image1.Top - Toffset)"
si on simplifie la seconde formule à l'aide de la première, on obtient
"Image1.Height = Image1.Height - (Image1.Top - Toffset) Image1.Height -
(Image1.Top - Image1.Top) = Image1.Height - (0) = Image1.Height"
donc normalement on obtient cette ligne de commande "Image1.Height > > Image1.Height"
pourtant lorsqu'on fait fonctionner la macro, on s'aperçois que la
hauteur
de l'image n'est pas constante.
Quelqu'un peut-il m'expliquer pourquoi ?
Bonjour Emcy;
Yp est la position y du curseur mémorisée au moment de l'appui sur le
bouton
gauche sur la souris; c'est donc une constante.
y est égal à la position verticale instantanée du curseur sur un clip
image,
lesquels sont repositionnés sur l'image en permanence s'il y a
déplacement;
vu que la hauteur des clips vaut 4 points, y varie très peu. Toffset est
égal au Top initial de l'image à l'instant t tandis que Image1.Top est la
position de l'image corrigée à l'instant t+1. A l'instant t+1, le top de
l'image n'est donc pas égal à Toffset. Pour t'en convaincre et constater
la
différence entre Toffset et Image1.Top, sur la feuille la feuille de
calcul,
inscris:
En A1:Toffset
En A2:Yp
En A3:Y
En A4:Top
En A5:Height
Puis modifie la procédure comme suit:
Private Sub AxeY(ByVal X%, ByVal Y%, S As Boolean)
Dim Toffset!
With UserForm1.Image1
Toffset = .Top
Cells(2, 1) = Toffset
Cells(2, 2) = Yp
Cells(2, 3) = Y
If S Then
.Height = .Height - Yp + Y
.Top = .Top - (.Top - Toffset)
Else
.Top = .Top - Yp + Y
.Height = .Height - (.Top - Toffset)
End If
Cells(2, 4) = .Top
Cells(2, 5) = .Height
End With
UserForm1.HandPos
End Sub
Exécute la démo et observe les différences de valeurs en faisant varier
doucement le redimensionnement.
MP
"Emcy" a écrit dans le message de
news:%23HtJV8H%Bonjours,
je repose ma question differemment vu que personne ne m'a répondu :
dans le classeur de michel pierron sur le redimmensionnment dynamique
d'uneimage
http://www.excelabo.net/moteurs/compteclic.php?nom=mp-dynamiccontrol
jene coumprend pas ce bout de code :
Private Sub AxeY(ByVal x%, ByVal y%, S As Boolean)
Dim Toffset!
Toffset = Image1.Top
If S Then
Image1.Height = Image1.Height - Yp + y
Image1.Top = Image1.Top - (Image1.Top - Toffset)
Else
Image1.Top = Image1.Top - Yp + y
Image1.Height = Image1.Height - (Image1.Top - Toffset)
End If
HandPos
End Sub
il est marqué que "Toffset = Image1.Top" et que "Image1.Height > > Image1.Height - (Image1.Top - Toffset)"
si on simplifie la seconde formule à l'aide de la première, on obtient
"Image1.Height = Image1.Height - (Image1.Top - Toffset) Image1.Height -
(Image1.Top - Image1.Top) = Image1.Height - (0) = Image1.Height"
donc normalement on obtient cette ligne de commande "Image1.Height > > Image1.Height"
pourtant lorsqu'on fait fonctionner la macro, on s'aperçois que la
hauteur
de l'image n'est pas constante.
Quelqu'un peut-il m'expliquer pourquoi ?
il me semble que :
If S Then
.Height = .Height - Yp + Y
.Top = .Top - (.Top - Toffset)
Else
.Top = .Top - Yp + Y
.Height = .Height - (.Top - Toffset)
End If
peut être remplacé par :
If S Then
.Height = .Height - Yp + Y
.Else
.Top = .Top - Yp + Y
.Height = .Height - (.Top - Toffset)
End If
en tout cas, ça à l'air de marcher
"Michel Pierron" a écrit dans le message de
news:e5PJ2wJ%Bonjour Emcy;
Yp est la position y du curseur mémorisée au moment de l'appui sur le
boutongauche sur la souris; c'est donc une constante.
y est égal à la position verticale instantanée du curseur sur un clip
image,lesquels sont repositionnés sur l'image en permanence s'il y a
déplacement;vu que la hauteur des clips vaut 4 points, y varie très peu. Toffset est
égal au Top initial de l'image à l'instant t tandis que Image1.Top est
la
position de l'image corrigée à l'instant t+1. A l'instant t+1, le top de
l'image n'est donc pas égal à Toffset. Pour t'en convaincre et constater
ladifférence entre Toffset et Image1.Top, sur la feuille la feuille de
calcul,inscris:
En A1:Toffset
En A2:Yp
En A3:Y
En A4:Top
En A5:Height
Puis modifie la procédure comme suit:
Private Sub AxeY(ByVal X%, ByVal Y%, S As Boolean)
Dim Toffset!
With UserForm1.Image1
Toffset = .Top
Cells(2, 1) = Toffset
Cells(2, 2) = Yp
Cells(2, 3) = Y
If S Then
.Height = .Height - Yp + Y
.Top = .Top - (.Top - Toffset)
Else
.Top = .Top - Yp + Y
.Height = .Height - (.Top - Toffset)
End If
Cells(2, 4) = .Top
Cells(2, 5) = .Height
End With
UserForm1.HandPos
End Sub
Exécute la démo et observe les différences de valeurs en faisant varier
doucement le redimensionnement.
MP
"Emcy" a écrit dans le message de
news:%23HtJV8H%Bonjours,
je repose ma question differemment vu que personne ne m'a répondu :
dans le classeur de michel pierron sur le redimmensionnment dynamique
d'uneimage
http://www.excelabo.net/moteurs/compteclic.php?nom=mp-dynamiccontrol
jene coumprend pas ce bout de code :
Private Sub AxeY(ByVal x%, ByVal y%, S As Boolean)
Dim Toffset!
Toffset = Image1.Top
If S Then
Image1.Height = Image1.Height - Yp + y
Image1.Top = Image1.Top - (Image1.Top - Toffset)
Else
Image1.Top = Image1.Top - Yp + y
Image1.Height = Image1.Height - (Image1.Top - Toffset)
End If
HandPos
End Sub
il est marqué que "Toffset = Image1.Top" et que "Image1.Height > > > Image1.Height - (Image1.Top - Toffset)"
si on simplifie la seconde formule à l'aide de la première, on obtient
"Image1.Height = Image1.Height - (Image1.Top - Toffset) > Image1.Height -
(Image1.Top - Image1.Top) = Image1.Height - (0) = Image1.Height"
donc normalement on obtient cette ligne de commande "Image1.Height > > > Image1.Height"
pourtant lorsqu'on fait fonctionner la macro, on s'aperçois que la
hauteurde l'image n'est pas constante.
Quelqu'un peut-il m'expliquer pourquoi ?
il me semble que :
If S Then
.Height = .Height - Yp + Y
.Top = .Top - (.Top - Toffset)
Else
.Top = .Top - Yp + Y
.Height = .Height - (.Top - Toffset)
End If
peut être remplacé par :
If S Then
.Height = .Height - Yp + Y
.Else
.Top = .Top - Yp + Y
.Height = .Height - (.Top - Toffset)
End If
en tout cas, ça à l'air de marcher
"Michel Pierron" <michel.pierron@free.fr> a écrit dans le message de
news:e5PJ2wJ%23EHA.2180@TK2MSFTNGP10.phx.gbl...
Bonjour Emcy;
Yp est la position y du curseur mémorisée au moment de l'appui sur le
bouton
gauche sur la souris; c'est donc une constante.
y est égal à la position verticale instantanée du curseur sur un clip
image,
lesquels sont repositionnés sur l'image en permanence s'il y a
déplacement;
vu que la hauteur des clips vaut 4 points, y varie très peu. Toffset est
égal au Top initial de l'image à l'instant t tandis que Image1.Top est
la
position de l'image corrigée à l'instant t+1. A l'instant t+1, le top de
l'image n'est donc pas égal à Toffset. Pour t'en convaincre et constater
la
différence entre Toffset et Image1.Top, sur la feuille la feuille de
calcul,
inscris:
En A1:Toffset
En A2:Yp
En A3:Y
En A4:Top
En A5:Height
Puis modifie la procédure comme suit:
Private Sub AxeY(ByVal X%, ByVal Y%, S As Boolean)
Dim Toffset!
With UserForm1.Image1
Toffset = .Top
Cells(2, 1) = Toffset
Cells(2, 2) = Yp
Cells(2, 3) = Y
If S Then
.Height = .Height - Yp + Y
.Top = .Top - (.Top - Toffset)
Else
.Top = .Top - Yp + Y
.Height = .Height - (.Top - Toffset)
End If
Cells(2, 4) = .Top
Cells(2, 5) = .Height
End With
UserForm1.HandPos
End Sub
Exécute la démo et observe les différences de valeurs en faisant varier
doucement le redimensionnement.
MP
"Emcy" <ten.etsop@ycme.ycme> a écrit dans le message de
news:%23HtJV8H%23EHA.1564@TK2MSFTNGP09.phx.gbl...
Bonjours,
je repose ma question differemment vu que personne ne m'a répondu :
dans le classeur de michel pierron sur le redimmensionnment dynamique
d'une
image
http://www.excelabo.net/moteurs/compteclic.php?nom=mp-dynamiccontrol
jene coumprend pas ce bout de code :
Private Sub AxeY(ByVal x%, ByVal y%, S As Boolean)
Dim Toffset!
Toffset = Image1.Top
If S Then
Image1.Height = Image1.Height - Yp + y
Image1.Top = Image1.Top - (Image1.Top - Toffset)
Else
Image1.Top = Image1.Top - Yp + y
Image1.Height = Image1.Height - (Image1.Top - Toffset)
End If
HandPos
End Sub
il est marqué que "Toffset = Image1.Top" et que "Image1.Height > > > Image1.Height - (Image1.Top - Toffset)"
si on simplifie la seconde formule à l'aide de la première, on obtient
"Image1.Height = Image1.Height - (Image1.Top - Toffset) > Image1.Height -
(Image1.Top - Image1.Top) = Image1.Height - (0) = Image1.Height"
donc normalement on obtient cette ligne de commande "Image1.Height > > > Image1.Height"
pourtant lorsqu'on fait fonctionner la macro, on s'aperçois que la
hauteur
de l'image n'est pas constante.
Quelqu'un peut-il m'expliquer pourquoi ?
il me semble que :
If S Then
.Height = .Height - Yp + Y
.Top = .Top - (.Top - Toffset)
Else
.Top = .Top - Yp + Y
.Height = .Height - (.Top - Toffset)
End If
peut être remplacé par :
If S Then
.Height = .Height - Yp + Y
.Else
.Top = .Top - Yp + Y
.Height = .Height - (.Top - Toffset)
End If
en tout cas, ça à l'air de marcher
"Michel Pierron" a écrit dans le message de
news:e5PJ2wJ%Bonjour Emcy;
Yp est la position y du curseur mémorisée au moment de l'appui sur le
boutongauche sur la souris; c'est donc une constante.
y est égal à la position verticale instantanée du curseur sur un clip
image,lesquels sont repositionnés sur l'image en permanence s'il y a
déplacement;vu que la hauteur des clips vaut 4 points, y varie très peu. Toffset est
égal au Top initial de l'image à l'instant t tandis que Image1.Top est
la
position de l'image corrigée à l'instant t+1. A l'instant t+1, le top de
l'image n'est donc pas égal à Toffset. Pour t'en convaincre et constater
ladifférence entre Toffset et Image1.Top, sur la feuille la feuille de
calcul,inscris:
En A1:Toffset
En A2:Yp
En A3:Y
En A4:Top
En A5:Height
Puis modifie la procédure comme suit:
Private Sub AxeY(ByVal X%, ByVal Y%, S As Boolean)
Dim Toffset!
With UserForm1.Image1
Toffset = .Top
Cells(2, 1) = Toffset
Cells(2, 2) = Yp
Cells(2, 3) = Y
If S Then
.Height = .Height - Yp + Y
.Top = .Top - (.Top - Toffset)
Else
.Top = .Top - Yp + Y
.Height = .Height - (.Top - Toffset)
End If
Cells(2, 4) = .Top
Cells(2, 5) = .Height
End With
UserForm1.HandPos
End Sub
Exécute la démo et observe les différences de valeurs en faisant varier
doucement le redimensionnement.
MP
"Emcy" a écrit dans le message de
news:%23HtJV8H%Bonjours,
je repose ma question differemment vu que personne ne m'a répondu :
dans le classeur de michel pierron sur le redimmensionnment dynamique
d'uneimage
http://www.excelabo.net/moteurs/compteclic.php?nom=mp-dynamiccontrol
jene coumprend pas ce bout de code :
Private Sub AxeY(ByVal x%, ByVal y%, S As Boolean)
Dim Toffset!
Toffset = Image1.Top
If S Then
Image1.Height = Image1.Height - Yp + y
Image1.Top = Image1.Top - (Image1.Top - Toffset)
Else
Image1.Top = Image1.Top - Yp + y
Image1.Height = Image1.Height - (Image1.Top - Toffset)
End If
HandPos
End Sub
il est marqué que "Toffset = Image1.Top" et que "Image1.Height > > > Image1.Height - (Image1.Top - Toffset)"
si on simplifie la seconde formule à l'aide de la première, on obtient
"Image1.Height = Image1.Height - (Image1.Top - Toffset) > Image1.Height -
(Image1.Top - Image1.Top) = Image1.Height - (0) = Image1.Height"
donc normalement on obtient cette ligne de commande "Image1.Height > > > Image1.Height"
pourtant lorsqu'on fait fonctionner la macro, on s'aperçois que la
hauteurde l'image n'est pas constante.
Quelqu'un peut-il m'expliquer pourquoi ?
Re Emcy;
Oui puisque lorsque l'on redimensionne du bas vers le haut, Top est
constant.
MP
"Emcy" a écrit dans le message de
news:O429dLK%il me semble que :
If S Then
.Height = .Height - Yp + Y
.Top = .Top - (.Top - Toffset)
Else
.Top = .Top - Yp + Y
.Height = .Height - (.Top - Toffset)
End If
peut être remplacé par :
If S Then
.Height = .Height - Yp + Y
.Else
.Top = .Top - Yp + Y
.Height = .Height - (.Top - Toffset)
End If
en tout cas, ça à l'air de marcher
"Michel Pierron" a écrit dans le message de
news:e5PJ2wJ%Bonjour Emcy;
Yp est la position y du curseur mémorisée au moment de l'appui sur le
boutongauche sur la souris; c'est donc une constante.
y est égal à la position verticale instantanée du curseur sur un clip
image,lesquels sont repositionnés sur l'image en permanence s'il y a
déplacement;vu que la hauteur des clips vaut 4 points, y varie très peu. Toffset
est
égal au Top initial de l'image à l'instant t tandis que Image1.Top est
laposition de l'image corrigée à l'instant t+1. A l'instant t+1, le top
de
l'image n'est donc pas égal à Toffset. Pour t'en convaincre et
constater
ladifférence entre Toffset et Image1.Top, sur la feuille la feuille de
calcul,inscris:
En A1:Toffset
En A2:Yp
En A3:Y
En A4:Top
En A5:Height
Puis modifie la procédure comme suit:
Private Sub AxeY(ByVal X%, ByVal Y%, S As Boolean)
Dim Toffset!
With UserForm1.Image1
Toffset = .Top
Cells(2, 1) = Toffset
Cells(2, 2) = Yp
Cells(2, 3) = Y
If S Then
.Height = .Height - Yp + Y
.Top = .Top - (.Top - Toffset)
Else
.Top = .Top - Yp + Y
.Height = .Height - (.Top - Toffset)
End If
Cells(2, 4) = .Top
Cells(2, 5) = .Height
End With
UserForm1.HandPos
End Sub
Exécute la démo et observe les différences de valeurs en faisant
varier
doucement le redimensionnement.
MP
"Emcy" a écrit dans le message de
news:%23HtJV8H%Bonjours,
je repose ma question differemment vu que personne ne m'a répondu :
dans le classeur de michel pierron sur le redimmensionnment
dynamique
d'uneimage
http://www.excelabo.net/moteurs/compteclic.php?nom=mp-dynamiccontrol
jene coumprend pas ce bout de code :
Private Sub AxeY(ByVal x%, ByVal y%, S As Boolean)
Dim Toffset!
Toffset = Image1.Top
If S Then
Image1.Height = Image1.Height - Yp + y
Image1.Top = Image1.Top - (Image1.Top - Toffset)
Else
Image1.Top = Image1.Top - Yp + y
Image1.Height = Image1.Height - (Image1.Top - Toffset)
End If
HandPos
End Sub
il est marqué que "Toffset = Image1.Top" et que "Image1.Height > > > > Image1.Height - (Image1.Top - Toffset)"
si on simplifie la seconde formule à l'aide de la première, on
obtient
"Image1.Height = Image1.Height - (Image1.Top - Toffset) > > Image1.Height -
(Image1.Top - Image1.Top) = Image1.Height - (0) = Image1.Height"
donc normalement on obtient cette ligne de commande "Image1.Height > > > > Image1.Height"
pourtant lorsqu'on fait fonctionner la macro, on s'aperçois que la
hauteurde l'image n'est pas constante.
Quelqu'un peut-il m'expliquer pourquoi ?
Re Emcy;
Oui puisque lorsque l'on redimensionne du bas vers le haut, Top est
constant.
MP
"Emcy" <ten.etsop@ycme.ycme> a écrit dans le message de
news:O429dLK%23EHA.1264@TK2MSFTNGP12.phx.gbl...
il me semble que :
If S Then
.Height = .Height - Yp + Y
.Top = .Top - (.Top - Toffset)
Else
.Top = .Top - Yp + Y
.Height = .Height - (.Top - Toffset)
End If
peut être remplacé par :
If S Then
.Height = .Height - Yp + Y
.Else
.Top = .Top - Yp + Y
.Height = .Height - (.Top - Toffset)
End If
en tout cas, ça à l'air de marcher
"Michel Pierron" <michel.pierron@free.fr> a écrit dans le message de
news:e5PJ2wJ%23EHA.2180@TK2MSFTNGP10.phx.gbl...
Bonjour Emcy;
Yp est la position y du curseur mémorisée au moment de l'appui sur le
bouton
gauche sur la souris; c'est donc une constante.
y est égal à la position verticale instantanée du curseur sur un clip
image,
lesquels sont repositionnés sur l'image en permanence s'il y a
déplacement;
vu que la hauteur des clips vaut 4 points, y varie très peu. Toffset
est
égal au Top initial de l'image à l'instant t tandis que Image1.Top est
la
position de l'image corrigée à l'instant t+1. A l'instant t+1, le top
de
l'image n'est donc pas égal à Toffset. Pour t'en convaincre et
constater
la
différence entre Toffset et Image1.Top, sur la feuille la feuille de
calcul,
inscris:
En A1:Toffset
En A2:Yp
En A3:Y
En A4:Top
En A5:Height
Puis modifie la procédure comme suit:
Private Sub AxeY(ByVal X%, ByVal Y%, S As Boolean)
Dim Toffset!
With UserForm1.Image1
Toffset = .Top
Cells(2, 1) = Toffset
Cells(2, 2) = Yp
Cells(2, 3) = Y
If S Then
.Height = .Height - Yp + Y
.Top = .Top - (.Top - Toffset)
Else
.Top = .Top - Yp + Y
.Height = .Height - (.Top - Toffset)
End If
Cells(2, 4) = .Top
Cells(2, 5) = .Height
End With
UserForm1.HandPos
End Sub
Exécute la démo et observe les différences de valeurs en faisant
varier
doucement le redimensionnement.
MP
"Emcy" <ten.etsop@ycme.ycme> a écrit dans le message de
news:%23HtJV8H%23EHA.1564@TK2MSFTNGP09.phx.gbl...
Bonjours,
je repose ma question differemment vu que personne ne m'a répondu :
dans le classeur de michel pierron sur le redimmensionnment
dynamique
d'une
image
http://www.excelabo.net/moteurs/compteclic.php?nom=mp-dynamiccontrol
jene coumprend pas ce bout de code :
Private Sub AxeY(ByVal x%, ByVal y%, S As Boolean)
Dim Toffset!
Toffset = Image1.Top
If S Then
Image1.Height = Image1.Height - Yp + y
Image1.Top = Image1.Top - (Image1.Top - Toffset)
Else
Image1.Top = Image1.Top - Yp + y
Image1.Height = Image1.Height - (Image1.Top - Toffset)
End If
HandPos
End Sub
il est marqué que "Toffset = Image1.Top" et que "Image1.Height > > > > Image1.Height - (Image1.Top - Toffset)"
si on simplifie la seconde formule à l'aide de la première, on
obtient
"Image1.Height = Image1.Height - (Image1.Top - Toffset) > > Image1.Height -
(Image1.Top - Image1.Top) = Image1.Height - (0) = Image1.Height"
donc normalement on obtient cette ligne de commande "Image1.Height > > > > Image1.Height"
pourtant lorsqu'on fait fonctionner la macro, on s'aperçois que la
hauteur
de l'image n'est pas constante.
Quelqu'un peut-il m'expliquer pourquoi ?
Re Emcy;
Oui puisque lorsque l'on redimensionne du bas vers le haut, Top est
constant.
MP
"Emcy" a écrit dans le message de
news:O429dLK%il me semble que :
If S Then
.Height = .Height - Yp + Y
.Top = .Top - (.Top - Toffset)
Else
.Top = .Top - Yp + Y
.Height = .Height - (.Top - Toffset)
End If
peut être remplacé par :
If S Then
.Height = .Height - Yp + Y
.Else
.Top = .Top - Yp + Y
.Height = .Height - (.Top - Toffset)
End If
en tout cas, ça à l'air de marcher
"Michel Pierron" a écrit dans le message de
news:e5PJ2wJ%Bonjour Emcy;
Yp est la position y du curseur mémorisée au moment de l'appui sur le
boutongauche sur la souris; c'est donc une constante.
y est égal à la position verticale instantanée du curseur sur un clip
image,lesquels sont repositionnés sur l'image en permanence s'il y a
déplacement;vu que la hauteur des clips vaut 4 points, y varie très peu. Toffset
est
égal au Top initial de l'image à l'instant t tandis que Image1.Top est
laposition de l'image corrigée à l'instant t+1. A l'instant t+1, le top
de
l'image n'est donc pas égal à Toffset. Pour t'en convaincre et
constater
ladifférence entre Toffset et Image1.Top, sur la feuille la feuille de
calcul,inscris:
En A1:Toffset
En A2:Yp
En A3:Y
En A4:Top
En A5:Height
Puis modifie la procédure comme suit:
Private Sub AxeY(ByVal X%, ByVal Y%, S As Boolean)
Dim Toffset!
With UserForm1.Image1
Toffset = .Top
Cells(2, 1) = Toffset
Cells(2, 2) = Yp
Cells(2, 3) = Y
If S Then
.Height = .Height - Yp + Y
.Top = .Top - (.Top - Toffset)
Else
.Top = .Top - Yp + Y
.Height = .Height - (.Top - Toffset)
End If
Cells(2, 4) = .Top
Cells(2, 5) = .Height
End With
UserForm1.HandPos
End Sub
Exécute la démo et observe les différences de valeurs en faisant
varier
doucement le redimensionnement.
MP
"Emcy" a écrit dans le message de
news:%23HtJV8H%Bonjours,
je repose ma question differemment vu que personne ne m'a répondu :
dans le classeur de michel pierron sur le redimmensionnment
dynamique
d'uneimage
http://www.excelabo.net/moteurs/compteclic.php?nom=mp-dynamiccontrol
jene coumprend pas ce bout de code :
Private Sub AxeY(ByVal x%, ByVal y%, S As Boolean)
Dim Toffset!
Toffset = Image1.Top
If S Then
Image1.Height = Image1.Height - Yp + y
Image1.Top = Image1.Top - (Image1.Top - Toffset)
Else
Image1.Top = Image1.Top - Yp + y
Image1.Height = Image1.Height - (Image1.Top - Toffset)
End If
HandPos
End Sub
il est marqué que "Toffset = Image1.Top" et que "Image1.Height > > > > Image1.Height - (Image1.Top - Toffset)"
si on simplifie la seconde formule à l'aide de la première, on
obtient
"Image1.Height = Image1.Height - (Image1.Top - Toffset) > > Image1.Height -
(Image1.Top - Image1.Top) = Image1.Height - (0) = Image1.Height"
donc normalement on obtient cette ligne de commande "Image1.Height > > > > Image1.Height"
pourtant lorsqu'on fait fonctionner la macro, on s'aperçois que la
hauteurde l'image n'est pas constante.
Quelqu'un peut-il m'expliquer pourquoi ?