Exécution interrompue lors d'un déplacement de formes

Le
garnote
Bonjour,

Quand je veux déplacer un groupe de rectangles vers la droite
ou vers la gauche en cliquant sur une forme, j'obtiens le message
d'erreur "Exécution interrompue".
http://www.cijoint.fr/cjlink.php?file=cj200905/cijlmfUJUc.xls
Je clique alors sur "Continuer" et l'animation a bel et bien lieu
mais avec des arrêts. Elle devrait se faire de façon continue.
J'ai souvent utilisé ce genre de macros sous Excel 2003 et les
animations se déroulaient correctement.
Alors, ai-je perdu la main ou c'est Excel 2007 qui débloque ?

Private Declare Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As Long)
Sub bougeg()
Set f = ActiveSheet.Shapes("groupe")
For i = 1 To 50
DoEvents
f.Left = f.Left - 10
Sleep (50)
Next i
End Sub

Sub bouged()
Set f = ActiveSheet.Shapes("groupe")
For i = 1 To 50
DoEvents
f.Left = f.Left + 10
Sleep (50)
Next i
End Sub

Serge
Vidéos High-Tech et Jeu Vidéo
Téléchargements
Vos réponses
Gagnez chaque mois un abonnement Premium avec GNT : Inscrivez-vous !
Trier par : date / pertinence
MichDenis
Le #19394031
Tester sous Excel 2007 et Vista.
Ton code fonctionne normalement.
Aucun message d'erreur.


"garnote" #
Bonjour,

Quand je veux déplacer un groupe de rectangles vers la droite
ou vers la gauche en cliquant sur une forme, j'obtiens le message
d'erreur "Exécution interrompue".
http://www.cijoint.fr/cjlink.php?file=cj200905/cijlmfUJUc.xls
Je clique alors sur "Continuer" et l'animation a bel et bien lieu
mais avec des arrêts. Elle devrait se faire de façon continue.
J'ai souvent utilisé ce genre de macros sous Excel 2003 et les
animations se déroulaient correctement.
Alors, ai-je perdu la main ou c'est Excel 2007 qui débloque ?

Private Declare Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As Long)
Sub bougeg()
Set f = ActiveSheet.Shapes("groupe")
For i = 1 To 50
DoEvents
f.Left = f.Left - 10
Sleep (50)
Next i
End Sub

Sub bouged()
Set f = ActiveSheet.Shapes("groupe")
For i = 1 To 50
DoEvents
f.Left = f.Left + 10
Sleep (50)
Next i
End Sub

Serge
MichDenis
Le #19394231
En passant, de cette manière, tu peux de passer de l'API

Sub bouged()
Dim T As Double, F As Shape
Set F = ActiveSheet.Shapes("groupe")
For a = 1 To 50
F.Left = F.Left + 10
T = Timer + 0.05
Do While Timer <= T
DoEvents
Loop
Next
End Sub




"MichDenis" #
Tester sous Excel 2007 et Vista.
Ton code fonctionne normalement.
Aucun message d'erreur.


"garnote" #
Bonjour,

Quand je veux déplacer un groupe de rectangles vers la droite
ou vers la gauche en cliquant sur une forme, j'obtiens le message
d'erreur "Exécution interrompue".
http://www.cijoint.fr/cjlink.php?file=cj200905/cijlmfUJUc.xls
Je clique alors sur "Continuer" et l'animation a bel et bien lieu
mais avec des arrêts. Elle devrait se faire de façon continue.
J'ai souvent utilisé ce genre de macros sous Excel 2003 et les
animations se déroulaient correctement.
Alors, ai-je perdu la main ou c'est Excel 2007 qui débloque ?

Private Declare Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As Long)
Sub bougeg()
Set f = ActiveSheet.Shapes("groupe")
For i = 1 To 50
DoEvents
f.Left = f.Left - 10
Sleep (50)
Next i
End Sub

Sub bouged()
Set f = ActiveSheet.Shapes("groupe")
For i = 1 To 50
DoEvents
f.Left = f.Left + 10
Sleep (50)
Next i
End Sub

Serge
garnote
Le #19394831
C'est à n'y rien comprendre ! Carte graphique ?
Curieusement, avec TImer, il y a un message d'interruption au début
mais par la suite l'animation se déroule normalement.
J'ai un problèeme similaire quand j'utilse une barre de défilement
pour définir le Left d'un objet. Quand je fais glisser le curseur,
je ne vois que les positions initiale et finale de la forme à déplacer.
Pour avoir une animation, je dois maintenir le bouton de ma souris
enfoncé sur la barre de défilement.

Serge

"MichDenis"
En passant, de cette manière, tu peux de passer de l'API

Sub bouged()
Dim T As Double, F As Shape
Set F = ActiveSheet.Shapes("groupe")
For a = 1 To 50
F.Left = F.Left + 10
T = Timer + 0.05
Do While Timer <= T
DoEvents
Loop
Next
End Sub




"MichDenis" discussion :
#
Tester sous Excel 2007 et Vista.
Ton code fonctionne normalement.
Aucun message d'erreur.


"garnote" discussion :
#
Bonjour,

Quand je veux déplacer un groupe de rectangles vers la droite
ou vers la gauche en cliquant sur une forme, j'obtiens le message
d'erreur "Exécution interrompue".
http://www.cijoint.fr/cjlink.php?file=cj200905/cijlmfUJUc.xls
Je clique alors sur "Continuer" et l'animation a bel et bien lieu
mais avec des arrêts. Elle devrait se faire de façon continue.
J'ai souvent utilisé ce genre de macros sous Excel 2003 et les
animations se déroulaient correctement.
Alors, ai-je perdu la main ou c'est Excel 2007 qui débloque ?

Private Declare Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As Long)
Sub bougeg()
Set f = ActiveSheet.Shapes("groupe")
For i = 1 To 50
DoEvents
f.Left = f.Left - 10
Sleep (50)
Next i
End Sub

Sub bouged()
Set f = ActiveSheet.Shapes("groupe")
For i = 1 To 50
DoEvents
f.Left = f.Left + 10
Sleep (50)
Next i
End Sub

Serge



MichDenis
Le #19394911
| C'est à n'y rien comprendre ! Carte graphique ?

Je ne m'y connais pas beaucoup dans les composantes...
mais il me semble que tu éprouves beaucoup de difficultés
de configuration ou d'installation !!!

| quand j'utilse une barre de défilement pour
| définir le Left d'un objet

Je suppose que tu as un contrôle "scrollbar" émanant de la barre d'outils "Contrôle"
Pour que cela fonctionne, tu dois utiliser ces 2 événements :
'-----------------------------------
Private Sub ScrollBar1_Change()
' le code -> ce que tu veux qui se passe quand tu bouges
'le scrollbar
End Sub
'-----------------------------------
Private Sub ScrollBar1_Scroll()
'quand tu déplaces le scrollbar manuellement via
'l'interface graphique, cela appelle la procédure Scroll_Change
ScrollBar1_Change
End Sub
'-----------------------------------





"garnote"
C'est à n'y rien comprendre ! Carte graphique ?
Curieusement, avec TImer, il y a un message d'interruption au début
mais par la suite l'animation se déroule normalement.
J'ai un problèeme similaire quand j'utilse une barre de défilement
pour définir le Left d'un objet. Quand je fais glisser le curseur,
je ne vois que les positions initiale et finale de la forme à déplacer.
Pour avoir une animation, je dois maintenir le bouton de ma souris
enfoncé sur la barre de défilement.

Serge

"MichDenis"
En passant, de cette manière, tu peux de passer de l'API

Sub bouged()
Dim T As Double, F As Shape
Set F = ActiveSheet.Shapes("groupe")
For a = 1 To 50
F.Left = F.Left + 10
T = Timer + 0.05
Do While Timer <= T
DoEvents
Loop
Next
End Sub




"MichDenis" discussion :
#
Tester sous Excel 2007 et Vista.
Ton code fonctionne normalement.
Aucun message d'erreur.


"garnote" discussion :
#
Bonjour,

Quand je veux déplacer un groupe de rectangles vers la droite
ou vers la gauche en cliquant sur une forme, j'obtiens le message
d'erreur "Exécution interrompue".
http://www.cijoint.fr/cjlink.php?file=cj200905/cijlmfUJUc.xls
Je clique alors sur "Continuer" et l'animation a bel et bien lieu
mais avec des arrêts. Elle devrait se faire de façon continue.
J'ai souvent utilisé ce genre de macros sous Excel 2003 et les
animations se déroulaient correctement.
Alors, ai-je perdu la main ou c'est Excel 2007 qui débloque ?

Private Declare Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As Long)
Sub bougeg()
Set f = ActiveSheet.Shapes("groupe")
For i = 1 To 50
DoEvents
f.Left = f.Left - 10
Sleep (50)
Next i
End Sub

Sub bouged()
Set f = ActiveSheet.Shapes("groupe")
For i = 1 To 50
DoEvents
f.Left = f.Left + 10
Sleep (50)
Next i
End Sub

Serge



garnote
Le #19395041
> Je ne m'y connais pas beaucoup dans les composantes...
mais il me semble que tu éprouves beaucoup de difficultés
de configuration ou d'installation !!!


C'est le moins qu'on puisse dire !
Ça va quand même beaucoup mieus depuis le reformatage de mon disque dur.
Le seul problème que j'ai rencontré depuis, c'est lors de déplacements de
formes, de graphiques ou de boïtes de dialogues.
Vais essayer de me trouver un bon garagiste :-)

Serge
garnote
Le #19395211
Avec cette macro, ça va :

Private Sub ScrollBar1_Scroll()
ScrollBar1_Change
End Sub

Je l'avais pourtant déjà utilisée !

Merci de me rafraîchir la mémoire.
Serge


"MichDenis" %
| C'est à n'y rien comprendre ! Carte graphique ?

Je ne m'y connais pas beaucoup dans les composantes...
mais il me semble que tu éprouves beaucoup de difficultés
de configuration ou d'installation !!!

| quand j'utilse une barre de défilement pour
| définir le Left d'un objet

Je suppose que tu as un contrôle "scrollbar" émanant de la barre d'outils
"Contrôle"
Pour que cela fonctionne, tu dois utiliser ces 2 événements :
'-----------------------------------
Private Sub ScrollBar1_Change()
' le code -> ce que tu veux qui se passe quand tu bouges
'le scrollbar
End Sub
'-----------------------------------
Private Sub ScrollBar1_Scroll()
'quand tu déplaces le scrollbar manuellement via
'l'interface graphique, cela appelle la procédure Scroll_Change
ScrollBar1_Change
End Sub
'-----------------------------------





"garnote" discussion :

C'est à n'y rien comprendre ! Carte graphique ?
Curieusement, avec TImer, il y a un message d'interruption au début
mais par la suite l'animation se déroule normalement.
J'ai un problèeme similaire quand j'utilse une barre de défilement
pour définir le Left d'un objet. Quand je fais glisser le curseur,
je ne vois que les positions initiale et finale de la forme à déplacer.
Pour avoir une animation, je dois maintenir le bouton de ma souris
enfoncé sur la barre de défilement.

Serge

"MichDenis"
En passant, de cette manière, tu peux de passer de l'API

Sub bouged()
Dim T As Double, F As Shape
Set F = ActiveSheet.Shapes("groupe")
For a = 1 To 50
F.Left = F.Left + 10
T = Timer + 0.05
Do While Timer <= T
DoEvents
Loop
Next
End Sub




"MichDenis" discussion :
#
Tester sous Excel 2007 et Vista.
Ton code fonctionne normalement.
Aucun message d'erreur.


"garnote" discussion :
#
Bonjour,

Quand je veux déplacer un groupe de rectangles vers la droite
ou vers la gauche en cliquant sur une forme, j'obtiens le message
d'erreur "Exécution interrompue".
http://www.cijoint.fr/cjlink.php?file=cj200905/cijlmfUJUc.xls
Je clique alors sur "Continuer" et l'animation a bel et bien lieu
mais avec des arrêts. Elle devrait se faire de façon continue.
J'ai souvent utilisé ce genre de macros sous Excel 2003 et les
animations se déroulaient correctement.
Alors, ai-je perdu la main ou c'est Excel 2007 qui débloque ?

Private Declare Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As Long)
Sub bougeg()
Set f = ActiveSheet.Shapes("groupe")
For i = 1 To 50
DoEvents
f.Left = f.Left - 10
Sleep (50)
Next i
End Sub

Sub bouged()
Set f = ActiveSheet.Shapes("groupe")
For i = 1 To 50
DoEvents
f.Left = f.Left + 10
Sleep (50)
Next i
End Sub

Serge






Publicité
Poster une réponse
Anonyme