Sub RotationWordArt()
Dim compteur As Integer
With ActiveSheet
.Shapes("WordArt 3").Visible = True
.Shapes("WordArt 3").Rotation = 0
For compteur = 1 To 500
.Shapes("WordArt 3").IncrementRotation 1
DoEvents
'---------------- 'Ajouter-------------------
If ActiveSheet.Shapes("WordArt 3").Rotation = 0 Then
Exit For
End If
'--------------------------------------------
Next compteur
.Shapes("WordArt 3").Visible = False
End With
End Sub
"j-pascal" a écrit dans le message de news:
%
Bonjour,
Que faudrait-il ajouter à ce code pour que la rotation se termine
comme elle a commencé (rotation = 0) soit horizontale ?
Merci d'avance pour vos (éventuelles) réponses ;-)
JP
J'ai fait l'essai avec une image. Pb, quand je relance la macro,
l'image tourne bcp plus vite que la première fois ! Par ailleurs,
j'imagine que la vitesse de rotation dépend de "increment rotation"
mais peut-être aussi du CPU ??
Option Explicit
Sub RotationWordArt()
Dim compteur As Integer
With ActiveSheet
.Shapes("WordArt 3").Visible = True
.Shapes("WordArt 3").Rotation = 0
For compteur = 1 To 500
.Shapes("WordArt 3").IncrementRotation 1
DoEvents
Next compteur
.Shapes("WordArt 3").Visible = False
End With
End Sub
Sub RotationWordArt()
Dim compteur As Integer
With ActiveSheet
.Shapes("WordArt 3").Visible = True
.Shapes("WordArt 3").Rotation = 0
For compteur = 1 To 500
.Shapes("WordArt 3").IncrementRotation 1
DoEvents
'---------------- 'Ajouter-------------------
If ActiveSheet.Shapes("WordArt 3").Rotation = 0 Then
Exit For
End If
'--------------------------------------------
Next compteur
.Shapes("WordArt 3").Visible = False
End With
End Sub
"j-pascal" <nospam-j-pascal@free.fr> a écrit dans le message de news:
%23rywkPgFHHA.4580@TK2MSFTNGP05.phx.gbl...
Bonjour,
Que faudrait-il ajouter à ce code pour que la rotation se termine
comme elle a commencé (rotation = 0) soit horizontale ?
Merci d'avance pour vos (éventuelles) réponses ;-)
JP
J'ai fait l'essai avec une image. Pb, quand je relance la macro,
l'image tourne bcp plus vite que la première fois ! Par ailleurs,
j'imagine que la vitesse de rotation dépend de "increment rotation"
mais peut-être aussi du CPU ??
Option Explicit
Sub RotationWordArt()
Dim compteur As Integer
With ActiveSheet
.Shapes("WordArt 3").Visible = True
.Shapes("WordArt 3").Rotation = 0
For compteur = 1 To 500
.Shapes("WordArt 3").IncrementRotation 1
DoEvents
Next compteur
.Shapes("WordArt 3").Visible = False
End With
End Sub
Sub RotationWordArt()
Dim compteur As Integer
With ActiveSheet
.Shapes("WordArt 3").Visible = True
.Shapes("WordArt 3").Rotation = 0
For compteur = 1 To 500
.Shapes("WordArt 3").IncrementRotation 1
DoEvents
'---------------- 'Ajouter-------------------
If ActiveSheet.Shapes("WordArt 3").Rotation = 0 Then
Exit For
End If
'--------------------------------------------
Next compteur
.Shapes("WordArt 3").Visible = False
End With
End Sub
"j-pascal" a écrit dans le message de news:
%
Bonjour,
Que faudrait-il ajouter à ce code pour que la rotation se termine
comme elle a commencé (rotation = 0) soit horizontale ?
Merci d'avance pour vos (éventuelles) réponses ;-)
JP
J'ai fait l'essai avec une image. Pb, quand je relance la macro,
l'image tourne bcp plus vite que la première fois ! Par ailleurs,
j'imagine que la vitesse de rotation dépend de "increment rotation"
mais peut-être aussi du CPU ??
Option Explicit
Sub RotationWordArt()
Dim compteur As Integer
With ActiveSheet
.Shapes("WordArt 3").Visible = True
.Shapes("WordArt 3").Rotation = 0
For compteur = 1 To 500
.Shapes("WordArt 3").IncrementRotation 1
DoEvents
Next compteur
.Shapes("WordArt 3").Visible = False
End With
End Sub
Sub RotationWordArt()
Dim compteur As Integer
With ActiveSheet
.Shapes("WordArt 3").Visible = True
.Shapes("WordArt 3").Rotation = 0
For compteur = 1 To 500
.Shapes("WordArt 3").IncrementRotation 1
DoEvents
'---------------- 'Ajouter-------------------
If ActiveSheet.Shapes("WordArt 3").Rotation = 0 Then
Exit For
End If
'--------------------------------------------
Next compteur
.Shapes("WordArt 3").Visible = False
End With
End Sub
"j-pascal" a écrit dans le message de news:
%
Bonjour,
Que faudrait-il ajouter à ce code pour que la rotation se termine
comme elle a commencé (rotation = 0) soit horizontale ?
Merci d'avance pour vos (éventuelles) réponses ;-)
JP
J'ai fait l'essai avec une image. Pb, quand je relance la macro,
l'image tourne bcp plus vite que la première fois ! Par ailleurs,
j'imagine que la vitesse de rotation dépend de "increment rotation"
mais peut-être aussi du CPU ??
Option Explicit
Sub RotationWordArt()
Dim compteur As Integer
With ActiveSheet
.Shapes("WordArt 3").Visible = True
.Shapes("WordArt 3").Rotation = 0
For compteur = 1 To 500
.Shapes("WordArt 3").IncrementRotation 1
DoEvents
Next compteur
.Shapes("WordArt 3").Visible = False
End With
End Sub
Sub RotationWordArt()
Dim compteur As Integer
With ActiveSheet
.Shapes("WordArt 3").Visible = True
.Shapes("WordArt 3").Rotation = 0
For compteur = 1 To 500
.Shapes("WordArt 3").IncrementRotation 1
DoEvents
'---------------- 'Ajouter-------------------
If ActiveSheet.Shapes("WordArt 3").Rotation = 0 Then
Exit For
End If
'--------------------------------------------
Next compteur
.Shapes("WordArt 3").Visible = False
End With
End Sub
"j-pascal" <nospam-j-pascal@free.fr> a écrit dans le message de news:
%23rywkPgFHHA.4580@TK2MSFTNGP05.phx.gbl...
Bonjour,
Que faudrait-il ajouter à ce code pour que la rotation se termine
comme elle a commencé (rotation = 0) soit horizontale ?
Merci d'avance pour vos (éventuelles) réponses ;-)
JP
J'ai fait l'essai avec une image. Pb, quand je relance la macro,
l'image tourne bcp plus vite que la première fois ! Par ailleurs,
j'imagine que la vitesse de rotation dépend de "increment rotation"
mais peut-être aussi du CPU ??
Option Explicit
Sub RotationWordArt()
Dim compteur As Integer
With ActiveSheet
.Shapes("WordArt 3").Visible = True
.Shapes("WordArt 3").Rotation = 0
For compteur = 1 To 500
.Shapes("WordArt 3").IncrementRotation 1
DoEvents
Next compteur
.Shapes("WordArt 3").Visible = False
End With
End Sub
Sub RotationWordArt()
Dim compteur As Integer
With ActiveSheet
.Shapes("WordArt 3").Visible = True
.Shapes("WordArt 3").Rotation = 0
For compteur = 1 To 500
.Shapes("WordArt 3").IncrementRotation 1
DoEvents
'---------------- 'Ajouter-------------------
If ActiveSheet.Shapes("WordArt 3").Rotation = 0 Then
Exit For
End If
'--------------------------------------------
Next compteur
.Shapes("WordArt 3").Visible = False
End With
End Sub
"j-pascal" a écrit dans le message de news:
%
Bonjour,
Que faudrait-il ajouter à ce code pour que la rotation se termine
comme elle a commencé (rotation = 0) soit horizontale ?
Merci d'avance pour vos (éventuelles) réponses ;-)
JP
J'ai fait l'essai avec une image. Pb, quand je relance la macro,
l'image tourne bcp plus vite que la première fois ! Par ailleurs,
j'imagine que la vitesse de rotation dépend de "increment rotation"
mais peut-être aussi du CPU ??
Option Explicit
Sub RotationWordArt()
Dim compteur As Integer
With ActiveSheet
.Shapes("WordArt 3").Visible = True
.Shapes("WordArt 3").Rotation = 0
For compteur = 1 To 500
.Shapes("WordArt 3").IncrementRotation 1
DoEvents
Next compteur
.Shapes("WordArt 3").Visible = False
End With
End Sub
Sub RotationWordArt()
Dim compteur As Integer
With ActiveSheet
.Shapes("WordArt 3").Visible = True
.Shapes("WordArt 3").Rotation = 0
For compteur = 1 To 500
.Shapes("WordArt 3").IncrementRotation 1
DoEvents
'---------------- 'Ajouter-------------------
If ActiveSheet.Shapes("WordArt 3").Rotation = 0 Then
Exit For
End If
'--------------------------------------------
Next compteur
.Shapes("WordArt 3").Visible = False
End With
End Sub
"j-pascal" a écrit dans le message de news:
%
Bonjour,
Que faudrait-il ajouter à ce code pour que la rotation se termine
comme elle a commencé (rotation = 0) soit horizontale ?
Merci d'avance pour vos (éventuelles) réponses ;-)
JP
J'ai fait l'essai avec une image. Pb, quand je relance la macro,
l'image tourne bcp plus vite que la première fois ! Par ailleurs,
j'imagine que la vitesse de rotation dépend de "increment rotation"
mais peut-être aussi du CPU ??
Option Explicit
Sub RotationWordArt()
Dim compteur As Integer
With ActiveSheet
.Shapes("WordArt 3").Visible = True
.Shapes("WordArt 3").Rotation = 0
For compteur = 1 To 500
.Shapes("WordArt 3").IncrementRotation 1
DoEvents
Next compteur
.Shapes("WordArt 3").Visible = False
End With
End Sub
Sub RotationWordArt()
Dim compteur As Integer
With ActiveSheet
.Shapes("WordArt 3").Visible = True
.Shapes("WordArt 3").Rotation = 0
For compteur = 1 To 500
.Shapes("WordArt 3").IncrementRotation 1
DoEvents
'---------------- 'Ajouter-------------------
If ActiveSheet.Shapes("WordArt 3").Rotation = 0 Then
Exit For
End If
'--------------------------------------------
Next compteur
.Shapes("WordArt 3").Visible = False
End With
End Sub
"j-pascal" <nospam-j-pascal@free.fr> a écrit dans le message de news:
%23rywkPgFHHA.4580@TK2MSFTNGP05.phx.gbl...
Bonjour,
Que faudrait-il ajouter à ce code pour que la rotation se termine
comme elle a commencé (rotation = 0) soit horizontale ?
Merci d'avance pour vos (éventuelles) réponses ;-)
JP
J'ai fait l'essai avec une image. Pb, quand je relance la macro,
l'image tourne bcp plus vite que la première fois ! Par ailleurs,
j'imagine que la vitesse de rotation dépend de "increment rotation"
mais peut-être aussi du CPU ??
Option Explicit
Sub RotationWordArt()
Dim compteur As Integer
With ActiveSheet
.Shapes("WordArt 3").Visible = True
.Shapes("WordArt 3").Rotation = 0
For compteur = 1 To 500
.Shapes("WordArt 3").IncrementRotation 1
DoEvents
Next compteur
.Shapes("WordArt 3").Visible = False
End With
End Sub
Sub RotationWordArt()
Dim compteur As Integer
With ActiveSheet
.Shapes("WordArt 3").Visible = True
.Shapes("WordArt 3").Rotation = 0
For compteur = 1 To 500
.Shapes("WordArt 3").IncrementRotation 1
DoEvents
'---------------- 'Ajouter-------------------
If ActiveSheet.Shapes("WordArt 3").Rotation = 0 Then
Exit For
End If
'--------------------------------------------
Next compteur
.Shapes("WordArt 3").Visible = False
End With
End Sub
"j-pascal" a écrit dans le message de news:
%
Bonjour,
Que faudrait-il ajouter à ce code pour que la rotation se termine
comme elle a commencé (rotation = 0) soit horizontale ?
Merci d'avance pour vos (éventuelles) réponses ;-)
JP
J'ai fait l'essai avec une image. Pb, quand je relance la macro,
l'image tourne bcp plus vite que la première fois ! Par ailleurs,
j'imagine que la vitesse de rotation dépend de "increment rotation"
mais peut-être aussi du CPU ??
Option Explicit
Sub RotationWordArt()
Dim compteur As Integer
With ActiveSheet
.Shapes("WordArt 3").Visible = True
.Shapes("WordArt 3").Rotation = 0
For compteur = 1 To 500
.Shapes("WordArt 3").IncrementRotation 1
DoEvents
Next compteur
.Shapes("WordArt 3").Visible = False
End With
End Sub
Je n'ai pas tout compris le sens de ta question...
autour d'un point, il y a 360 degrés,
IncrementRotation 1 donc 360 fois
IncrementRotation 3 donc 120 fois, tourne plus vite.
Pas de problème, si tu choisis des multiples de 360, la shape
va toujours passer à IncrementRotation 0, la condition
que j'ai mise pour arrêter de tourner...mais si ce n'est pas un
multiple... Gros problème... tu vas être dans une boucle sans fin
parce que IncrementRotation ne sera jamais égale à 0 !!!
Ta question était autre ?
"j-pascal" a écrit dans le message de news:
Re,
Evidemment cela fonctionne pour 1 seul tour ! J'imagine donc que si
les valeurs du compteur sont sous-dimensionnées, le WordArt se fige
(?) et si les valeurs sont trop importantes, elles ne sont pas prises
en considération (?)
Exact ?
JP
MichDenis wrote:Sub RotationWordArt()
Dim compteur As Integer
With ActiveSheet
.Shapes("WordArt 3").Visible = True
.Shapes("WordArt 3").Rotation = 0
For compteur = 1 To 500
.Shapes("WordArt 3").IncrementRotation 1
DoEvents
'---------------- 'Ajouter-------------------
If ActiveSheet.Shapes("WordArt 3").Rotation = 0 Then
Exit For
End If
'--------------------------------------------
Next compteur
.Shapes("WordArt 3").Visible = False
End With
End Sub
"j-pascal" a écrit dans le message de news:
%
Bonjour,
Que faudrait-il ajouter à ce code pour que la rotation se termine
comme elle a commencé (rotation = 0) soit horizontale ?
Merci d'avance pour vos (éventuelles) réponses ;-)
JP
J'ai fait l'essai avec une image. Pb, quand je relance la macro,
l'image tourne bcp plus vite que la première fois ! Par ailleurs,
j'imagine que la vitesse de rotation dépend de "increment rotation"
mais peut-être aussi du CPU ??
Option Explicit
Sub RotationWordArt()
Dim compteur As Integer
With ActiveSheet
.Shapes("WordArt 3").Visible = True
.Shapes("WordArt 3").Rotation = 0
For compteur = 1 To 500
.Shapes("WordArt 3").IncrementRotation 1
DoEvents
Next compteur
.Shapes("WordArt 3").Visible = False
End With
End Sub
Je n'ai pas tout compris le sens de ta question...
autour d'un point, il y a 360 degrés,
IncrementRotation 1 donc 360 fois
IncrementRotation 3 donc 120 fois, tourne plus vite.
Pas de problème, si tu choisis des multiples de 360, la shape
va toujours passer à IncrementRotation 0, la condition
que j'ai mise pour arrêter de tourner...mais si ce n'est pas un
multiple... Gros problème... tu vas être dans une boucle sans fin
parce que IncrementRotation ne sera jamais égale à 0 !!!
Ta question était autre ?
"j-pascal" <nospam-j-pascal@free.fr> a écrit dans le message de news:
uklDV6gFHHA.4464@TK2MSFTNGP03.phx.gbl...
Re,
Evidemment cela fonctionne pour 1 seul tour ! J'imagine donc que si
les valeurs du compteur sont sous-dimensionnées, le WordArt se fige
(?) et si les valeurs sont trop importantes, elles ne sont pas prises
en considération (?)
Exact ?
JP
MichDenis wrote:
Sub RotationWordArt()
Dim compteur As Integer
With ActiveSheet
.Shapes("WordArt 3").Visible = True
.Shapes("WordArt 3").Rotation = 0
For compteur = 1 To 500
.Shapes("WordArt 3").IncrementRotation 1
DoEvents
'---------------- 'Ajouter-------------------
If ActiveSheet.Shapes("WordArt 3").Rotation = 0 Then
Exit For
End If
'--------------------------------------------
Next compteur
.Shapes("WordArt 3").Visible = False
End With
End Sub
"j-pascal" <nospam-j-pascal@free.fr> a écrit dans le message de news:
%23rywkPgFHHA.4580@TK2MSFTNGP05.phx.gbl...
Bonjour,
Que faudrait-il ajouter à ce code pour que la rotation se termine
comme elle a commencé (rotation = 0) soit horizontale ?
Merci d'avance pour vos (éventuelles) réponses ;-)
JP
J'ai fait l'essai avec une image. Pb, quand je relance la macro,
l'image tourne bcp plus vite que la première fois ! Par ailleurs,
j'imagine que la vitesse de rotation dépend de "increment rotation"
mais peut-être aussi du CPU ??
Option Explicit
Sub RotationWordArt()
Dim compteur As Integer
With ActiveSheet
.Shapes("WordArt 3").Visible = True
.Shapes("WordArt 3").Rotation = 0
For compteur = 1 To 500
.Shapes("WordArt 3").IncrementRotation 1
DoEvents
Next compteur
.Shapes("WordArt 3").Visible = False
End With
End Sub
Je n'ai pas tout compris le sens de ta question...
autour d'un point, il y a 360 degrés,
IncrementRotation 1 donc 360 fois
IncrementRotation 3 donc 120 fois, tourne plus vite.
Pas de problème, si tu choisis des multiples de 360, la shape
va toujours passer à IncrementRotation 0, la condition
que j'ai mise pour arrêter de tourner...mais si ce n'est pas un
multiple... Gros problème... tu vas être dans une boucle sans fin
parce que IncrementRotation ne sera jamais égale à 0 !!!
Ta question était autre ?
"j-pascal" a écrit dans le message de news:
Re,
Evidemment cela fonctionne pour 1 seul tour ! J'imagine donc que si
les valeurs du compteur sont sous-dimensionnées, le WordArt se fige
(?) et si les valeurs sont trop importantes, elles ne sont pas prises
en considération (?)
Exact ?
JP
MichDenis wrote:Sub RotationWordArt()
Dim compteur As Integer
With ActiveSheet
.Shapes("WordArt 3").Visible = True
.Shapes("WordArt 3").Rotation = 0
For compteur = 1 To 500
.Shapes("WordArt 3").IncrementRotation 1
DoEvents
'---------------- 'Ajouter-------------------
If ActiveSheet.Shapes("WordArt 3").Rotation = 0 Then
Exit For
End If
'--------------------------------------------
Next compteur
.Shapes("WordArt 3").Visible = False
End With
End Sub
"j-pascal" a écrit dans le message de news:
%
Bonjour,
Que faudrait-il ajouter à ce code pour que la rotation se termine
comme elle a commencé (rotation = 0) soit horizontale ?
Merci d'avance pour vos (éventuelles) réponses ;-)
JP
J'ai fait l'essai avec une image. Pb, quand je relance la macro,
l'image tourne bcp plus vite que la première fois ! Par ailleurs,
j'imagine que la vitesse de rotation dépend de "increment rotation"
mais peut-être aussi du CPU ??
Option Explicit
Sub RotationWordArt()
Dim compteur As Integer
With ActiveSheet
.Shapes("WordArt 3").Visible = True
.Shapes("WordArt 3").Rotation = 0
For compteur = 1 To 500
.Shapes("WordArt 3").IncrementRotation 1
DoEvents
Next compteur
.Shapes("WordArt 3").Visible = False
End With
End Sub
MichDenis wrote:Je n'ai pas tout compris le sens de ta question...
autour d'un point, il y a 360 degrés,
IncrementRotation 1 donc 360 fois
IncrementRotation 3 donc 120 fois, tourne plus vite.
Pas de problème, si tu choisis des multiples de 360, la shape
va toujours passer à IncrementRotation 0, la condition
que j'ai mise pour arrêter de tourner...mais si ce n'est pas un
multiple... Gros problème... tu vas être dans une boucle sans fin
parce que IncrementRotation ne sera jamais égale à 0 !!!
Ta question était autre ?
Outre l'incrémentation, c'est la valeur donnée au compteur qui détermine la
durée pendant laquelle va tourner la shape, non ? Donc, pour moi, si cette
valeur est trop petite de sorte que le shape n'ait pas eu le temps de faire
un tour complet, on ne remplira pas la condition " If
ActiveSheet.Shapes("WordArt 3").Rotation = 0 Then Exit For" (?) et la
shape s'arrêtera dans une autre position qu'horizontale (?). Inversement, si
la valeur du compteur est très importante et qu'elle permettrait a priori de
faire plusieurs tours, avec ton code (me semble-t-il) la shape ne ferait
qu'un seul tour ! En conclusion, je comprends la notion d'increment par
rapport à 360 degrés mais pas la notion de multiple dont tu parles (j'ai fait
un test avec increment = 7 et ta macro s'arrête bien sur 0).
Cdlt
JP
"j-pascal" a écrit dans le message de news:
Re,
Evidemment cela fonctionne pour 1 seul tour ! J'imagine donc que si
les valeurs du compteur sont sous-dimensionnées, le WordArt se fige
(?) et si les valeurs sont trop importantes, elles ne sont pas prises
en considération (?)
Exact ?
JP
MichDenis wrote:Sub RotationWordArt()
Dim compteur As Integer
With ActiveSheet
.Shapes("WordArt 3").Visible = True
.Shapes("WordArt 3").Rotation = 0
For compteur = 1 To 500
.Shapes("WordArt 3").IncrementRotation 1
DoEvents
'---------------- 'Ajouter-------------------
If ActiveSheet.Shapes("WordArt 3").Rotation = 0 Then
Exit For
End If
'--------------------------------------------
Next compteur
.Shapes("WordArt 3").Visible = False
End With
End Sub
"j-pascal" a écrit dans le message de news:
%
Bonjour,
Que faudrait-il ajouter à ce code pour que la rotation se termine
comme elle a commencé (rotation = 0) soit horizontale ?
Merci d'avance pour vos (éventuelles) réponses ;-)
JP
J'ai fait l'essai avec une image. Pb, quand je relance la macro,
l'image tourne bcp plus vite que la première fois ! Par ailleurs,
j'imagine que la vitesse de rotation dépend de "increment rotation"
mais peut-être aussi du CPU ??
Option Explicit
Sub RotationWordArt()
Dim compteur As Integer
With ActiveSheet
.Shapes("WordArt 3").Visible = True
.Shapes("WordArt 3").Rotation = 0
For compteur = 1 To 500
.Shapes("WordArt 3").IncrementRotation 1
DoEvents
Next compteur
.Shapes("WordArt 3").Visible = False
End With
End Sub
MichDenis wrote:
Je n'ai pas tout compris le sens de ta question...
autour d'un point, il y a 360 degrés,
IncrementRotation 1 donc 360 fois
IncrementRotation 3 donc 120 fois, tourne plus vite.
Pas de problème, si tu choisis des multiples de 360, la shape
va toujours passer à IncrementRotation 0, la condition
que j'ai mise pour arrêter de tourner...mais si ce n'est pas un
multiple... Gros problème... tu vas être dans une boucle sans fin
parce que IncrementRotation ne sera jamais égale à 0 !!!
Ta question était autre ?
Outre l'incrémentation, c'est la valeur donnée au compteur qui détermine la
durée pendant laquelle va tourner la shape, non ? Donc, pour moi, si cette
valeur est trop petite de sorte que le shape n'ait pas eu le temps de faire
un tour complet, on ne remplira pas la condition " If
ActiveSheet.Shapes("WordArt 3").Rotation = 0 Then Exit For" (?) et la
shape s'arrêtera dans une autre position qu'horizontale (?). Inversement, si
la valeur du compteur est très importante et qu'elle permettrait a priori de
faire plusieurs tours, avec ton code (me semble-t-il) la shape ne ferait
qu'un seul tour ! En conclusion, je comprends la notion d'increment par
rapport à 360 degrés mais pas la notion de multiple dont tu parles (j'ai fait
un test avec increment = 7 et ta macro s'arrête bien sur 0).
Cdlt
JP
"j-pascal" <nospam-j-pascal@free.fr> a écrit dans le message de news:
uklDV6gFHHA.4464@TK2MSFTNGP03.phx.gbl...
Re,
Evidemment cela fonctionne pour 1 seul tour ! J'imagine donc que si
les valeurs du compteur sont sous-dimensionnées, le WordArt se fige
(?) et si les valeurs sont trop importantes, elles ne sont pas prises
en considération (?)
Exact ?
JP
MichDenis wrote:
Sub RotationWordArt()
Dim compteur As Integer
With ActiveSheet
.Shapes("WordArt 3").Visible = True
.Shapes("WordArt 3").Rotation = 0
For compteur = 1 To 500
.Shapes("WordArt 3").IncrementRotation 1
DoEvents
'---------------- 'Ajouter-------------------
If ActiveSheet.Shapes("WordArt 3").Rotation = 0 Then
Exit For
End If
'--------------------------------------------
Next compteur
.Shapes("WordArt 3").Visible = False
End With
End Sub
"j-pascal" <nospam-j-pascal@free.fr> a écrit dans le message de news:
%23rywkPgFHHA.4580@TK2MSFTNGP05.phx.gbl...
Bonjour,
Que faudrait-il ajouter à ce code pour que la rotation se termine
comme elle a commencé (rotation = 0) soit horizontale ?
Merci d'avance pour vos (éventuelles) réponses ;-)
JP
J'ai fait l'essai avec une image. Pb, quand je relance la macro,
l'image tourne bcp plus vite que la première fois ! Par ailleurs,
j'imagine que la vitesse de rotation dépend de "increment rotation"
mais peut-être aussi du CPU ??
Option Explicit
Sub RotationWordArt()
Dim compteur As Integer
With ActiveSheet
.Shapes("WordArt 3").Visible = True
.Shapes("WordArt 3").Rotation = 0
For compteur = 1 To 500
.Shapes("WordArt 3").IncrementRotation 1
DoEvents
Next compteur
.Shapes("WordArt 3").Visible = False
End With
End Sub
MichDenis wrote:Je n'ai pas tout compris le sens de ta question...
autour d'un point, il y a 360 degrés,
IncrementRotation 1 donc 360 fois
IncrementRotation 3 donc 120 fois, tourne plus vite.
Pas de problème, si tu choisis des multiples de 360, la shape
va toujours passer à IncrementRotation 0, la condition
que j'ai mise pour arrêter de tourner...mais si ce n'est pas un
multiple... Gros problème... tu vas être dans une boucle sans fin
parce que IncrementRotation ne sera jamais égale à 0 !!!
Ta question était autre ?
Outre l'incrémentation, c'est la valeur donnée au compteur qui détermine la
durée pendant laquelle va tourner la shape, non ? Donc, pour moi, si cette
valeur est trop petite de sorte que le shape n'ait pas eu le temps de faire
un tour complet, on ne remplira pas la condition " If
ActiveSheet.Shapes("WordArt 3").Rotation = 0 Then Exit For" (?) et la
shape s'arrêtera dans une autre position qu'horizontale (?). Inversement, si
la valeur du compteur est très importante et qu'elle permettrait a priori de
faire plusieurs tours, avec ton code (me semble-t-il) la shape ne ferait
qu'un seul tour ! En conclusion, je comprends la notion d'increment par
rapport à 360 degrés mais pas la notion de multiple dont tu parles (j'ai fait
un test avec increment = 7 et ta macro s'arrête bien sur 0).
Cdlt
JP
"j-pascal" a écrit dans le message de news:
Re,
Evidemment cela fonctionne pour 1 seul tour ! J'imagine donc que si
les valeurs du compteur sont sous-dimensionnées, le WordArt se fige
(?) et si les valeurs sont trop importantes, elles ne sont pas prises
en considération (?)
Exact ?
JP
MichDenis wrote:Sub RotationWordArt()
Dim compteur As Integer
With ActiveSheet
.Shapes("WordArt 3").Visible = True
.Shapes("WordArt 3").Rotation = 0
For compteur = 1 To 500
.Shapes("WordArt 3").IncrementRotation 1
DoEvents
'---------------- 'Ajouter-------------------
If ActiveSheet.Shapes("WordArt 3").Rotation = 0 Then
Exit For
End If
'--------------------------------------------
Next compteur
.Shapes("WordArt 3").Visible = False
End With
End Sub
"j-pascal" a écrit dans le message de news:
%
Bonjour,
Que faudrait-il ajouter à ce code pour que la rotation se termine
comme elle a commencé (rotation = 0) soit horizontale ?
Merci d'avance pour vos (éventuelles) réponses ;-)
JP
J'ai fait l'essai avec une image. Pb, quand je relance la macro,
l'image tourne bcp plus vite que la première fois ! Par ailleurs,
j'imagine que la vitesse de rotation dépend de "increment rotation"
mais peut-être aussi du CPU ??
Option Explicit
Sub RotationWordArt()
Dim compteur As Integer
With ActiveSheet
.Shapes("WordArt 3").Visible = True
.Shapes("WordArt 3").Rotation = 0
For compteur = 1 To 500
.Shapes("WordArt 3").IncrementRotation 1
DoEvents
Next compteur
.Shapes("WordArt 3").Visible = False
End With
End Sub
Je n'ai pas tout compris le sens de ta question...
autour d'un point, il y a 360 degrés,
IncrementRotation 1 donc 360 fois
IncrementRotation 3 donc 120 fois, tourne plus vite.
Pas de problème, si tu choisis des multiples de 360, la shape
va toujours passer à IncrementRotation 0, la condition
que j'ai mise pour arrêter de tourner...mais si ce n'est pas un
multiple... Gros problème... tu vas être dans une boucle sans fin
parce que IncrementRotation ne sera jamais égale à 0 !!!
Ta question était autre ?
"j-pascal" a écrit dans le message de news:
Re,
Evidemment cela fonctionne pour 1 seul tour ! J'imagine donc que si
les valeurs du compteur sont sous-dimensionnées, le WordArt se fige
(?) et si les valeurs sont trop importantes, elles ne sont pas prises
en considération (?)
Exact ?
JP
MichDenis wrote:Sub RotationWordArt()
Dim compteur As Integer
With ActiveSheet
.Shapes("WordArt 3").Visible = True
.Shapes("WordArt 3").Rotation = 0
For compteur = 1 To 500
.Shapes("WordArt 3").IncrementRotation 1
DoEvents
'---------------- 'Ajouter-------------------
If ActiveSheet.Shapes("WordArt 3").Rotation = 0 Then
Exit For
End If
'--------------------------------------------
Next compteur
.Shapes("WordArt 3").Visible = False
End With
End Sub
"j-pascal" a écrit dans le message de news:
%
Bonjour,
Que faudrait-il ajouter à ce code pour que la rotation se termine
comme elle a commencé (rotation = 0) soit horizontale ?
Merci d'avance pour vos (éventuelles) réponses ;-)
JP
J'ai fait l'essai avec une image. Pb, quand je relance la macro,
l'image tourne bcp plus vite que la première fois ! Par ailleurs,
j'imagine que la vitesse de rotation dépend de "increment rotation"
mais peut-être aussi du CPU ??
Option Explicit
Sub RotationWordArt()
Dim compteur As Integer
With ActiveSheet
.Shapes("WordArt 3").Visible = True
.Shapes("WordArt 3").Rotation = 0
For compteur = 1 To 500
.Shapes("WordArt 3").IncrementRotation 1
DoEvents
Next compteur
.Shapes("WordArt 3").Visible = False
End With
End Sub
Je n'ai pas tout compris le sens de ta question...
autour d'un point, il y a 360 degrés,
IncrementRotation 1 donc 360 fois
IncrementRotation 3 donc 120 fois, tourne plus vite.
Pas de problème, si tu choisis des multiples de 360, la shape
va toujours passer à IncrementRotation 0, la condition
que j'ai mise pour arrêter de tourner...mais si ce n'est pas un
multiple... Gros problème... tu vas être dans une boucle sans fin
parce que IncrementRotation ne sera jamais égale à 0 !!!
Ta question était autre ?
"j-pascal" <nospam-j-pascal@free.fr> a écrit dans le message de news:
uklDV6gFHHA.4464@TK2MSFTNGP03.phx.gbl...
Re,
Evidemment cela fonctionne pour 1 seul tour ! J'imagine donc que si
les valeurs du compteur sont sous-dimensionnées, le WordArt se fige
(?) et si les valeurs sont trop importantes, elles ne sont pas prises
en considération (?)
Exact ?
JP
MichDenis wrote:
Sub RotationWordArt()
Dim compteur As Integer
With ActiveSheet
.Shapes("WordArt 3").Visible = True
.Shapes("WordArt 3").Rotation = 0
For compteur = 1 To 500
.Shapes("WordArt 3").IncrementRotation 1
DoEvents
'---------------- 'Ajouter-------------------
If ActiveSheet.Shapes("WordArt 3").Rotation = 0 Then
Exit For
End If
'--------------------------------------------
Next compteur
.Shapes("WordArt 3").Visible = False
End With
End Sub
"j-pascal" <nospam-j-pascal@free.fr> a écrit dans le message de news:
%23rywkPgFHHA.4580@TK2MSFTNGP05.phx.gbl...
Bonjour,
Que faudrait-il ajouter à ce code pour que la rotation se termine
comme elle a commencé (rotation = 0) soit horizontale ?
Merci d'avance pour vos (éventuelles) réponses ;-)
JP
J'ai fait l'essai avec une image. Pb, quand je relance la macro,
l'image tourne bcp plus vite que la première fois ! Par ailleurs,
j'imagine que la vitesse de rotation dépend de "increment rotation"
mais peut-être aussi du CPU ??
Option Explicit
Sub RotationWordArt()
Dim compteur As Integer
With ActiveSheet
.Shapes("WordArt 3").Visible = True
.Shapes("WordArt 3").Rotation = 0
For compteur = 1 To 500
.Shapes("WordArt 3").IncrementRotation 1
DoEvents
Next compteur
.Shapes("WordArt 3").Visible = False
End With
End Sub
Je n'ai pas tout compris le sens de ta question...
autour d'un point, il y a 360 degrés,
IncrementRotation 1 donc 360 fois
IncrementRotation 3 donc 120 fois, tourne plus vite.
Pas de problème, si tu choisis des multiples de 360, la shape
va toujours passer à IncrementRotation 0, la condition
que j'ai mise pour arrêter de tourner...mais si ce n'est pas un
multiple... Gros problème... tu vas être dans une boucle sans fin
parce que IncrementRotation ne sera jamais égale à 0 !!!
Ta question était autre ?
"j-pascal" a écrit dans le message de news:
Re,
Evidemment cela fonctionne pour 1 seul tour ! J'imagine donc que si
les valeurs du compteur sont sous-dimensionnées, le WordArt se fige
(?) et si les valeurs sont trop importantes, elles ne sont pas prises
en considération (?)
Exact ?
JP
MichDenis wrote:Sub RotationWordArt()
Dim compteur As Integer
With ActiveSheet
.Shapes("WordArt 3").Visible = True
.Shapes("WordArt 3").Rotation = 0
For compteur = 1 To 500
.Shapes("WordArt 3").IncrementRotation 1
DoEvents
'---------------- 'Ajouter-------------------
If ActiveSheet.Shapes("WordArt 3").Rotation = 0 Then
Exit For
End If
'--------------------------------------------
Next compteur
.Shapes("WordArt 3").Visible = False
End With
End Sub
"j-pascal" a écrit dans le message de news:
%
Bonjour,
Que faudrait-il ajouter à ce code pour que la rotation se termine
comme elle a commencé (rotation = 0) soit horizontale ?
Merci d'avance pour vos (éventuelles) réponses ;-)
JP
J'ai fait l'essai avec une image. Pb, quand je relance la macro,
l'image tourne bcp plus vite que la première fois ! Par ailleurs,
j'imagine que la vitesse de rotation dépend de "increment rotation"
mais peut-être aussi du CPU ??
Option Explicit
Sub RotationWordArt()
Dim compteur As Integer
With ActiveSheet
.Shapes("WordArt 3").Visible = True
.Shapes("WordArt 3").Rotation = 0
For compteur = 1 To 500
.Shapes("WordArt 3").IncrementRotation 1
DoEvents
Next compteur
.Shapes("WordArt 3").Visible = False
End With
End Sub