mromain
XLDnaute Barbatruc
bonjour le forum
tout d'abord, désolé pour le titre pas très explicite, mais je n'ai pas réussi à trouver mieux...
j'ai 2 macros qui font la même chose : faire tourner une forme, avec des pauses entre chaque rotations.
lorsque j'utilise "Application.Wait", je suis limité à des pauses de 1 seconde (je veux en faire des plus courtes).
lorsque j'utilise "Sleep", l'affichage de la forme ne se met à jour qu'à la fin de ma macro. Du coup, je ne vois pas les "crans" de la rotation. (en mode pas à pas, on voit que la rotation s'effectue correctement).
quelqu'un aurait-il une solution pour :
- soit utiliser "Application.Wait" avec des millisecondes
- soit "rafraichier / redessiner" le Shape à la demande
voir le fichier joint
tout d'abord, désolé pour le titre pas très explicite, mais je n'ai pas réussi à trouver mieux...
j'ai 2 macros qui font la même chose : faire tourner une forme, avec des pauses entre chaque rotations.
Code:
Public Declare Sub Sleep Lib "Kernel32.dll" (ByVal dwMillisenconds As Long)
Sub test1()
With ThisWorkbook.Sheets("Feuil1").Shapes("Larme 1")
For i = 1 To 4
.Rotation = i * 90 Mod 360
Application.Wait (Now + TimeValue("00:00:01"))
Next i
End With
End Sub
Sub test2()
With ThisWorkbook.Sheets("Feuil1").Shapes("Larme 1")
For i = 1 To 4
.Rotation = i * 90 Mod 360
Sleep 1000
Next i
End With
End Sub
lorsque j'utilise "Application.Wait", je suis limité à des pauses de 1 seconde (je veux en faire des plus courtes).
lorsque j'utilise "Sleep", l'affichage de la forme ne se met à jour qu'à la fin de ma macro. Du coup, je ne vois pas les "crans" de la rotation. (en mode pas à pas, on voit que la rotation s'effectue correctement).
quelqu'un aurait-il une solution pour :
- soit utiliser "Application.Wait" avec des millisecondes
- soit "rafraichier / redessiner" le Shape à la demande
voir le fichier joint