Bouton relache ne reagit pas

Bonjour a tous, j'ai un bouton qui lance une boucle. Si je relache le bouton, la boucle n'arrete pas!!!.

[code=vb]'<STEP+> presse
Private Sub CommandButton4_MouseDown(ByVal Button As Integer, ByVal Shift As Integer, ByVal X As Single, ByVal Y As Single)
Action = True
Boucler 'boucle sur le sub simulateur tant que Action = true
End Sub
'<STEP+> relache
Private Sub CommandButton4_MouseUp(ByVal Button As Integer, ByVal Shift As Integer, ByVal X As Single, ByVal Y As Single)
Action = False
Boucler
End Sub

Private Sub Boucler()
Do While Action  'lorsque <STEP+> est presse
   simulateur
Loop

End Sub

Public Sub simulateur() 'recuperation des valeurs registres du simulateur et envoi de commandes

Dim colonne&, lr, i&, flag, SP, instruction, pos As Integer, adresse As String, NextAdresse As String 'a As String

Application.EnableEvents = True

AppActivate "Z80 Simulator IDE" 'active l'application deja ouverte "Z80 Simulator IDE"

Sleep 30

SendKeys "{F2}", True

Windows("LOGICIEL 60.xls:2").Activate

lr = Range("A65000").End(xlUp).Row + 1 'position de la premiere ligne libre du tableau

Cells(lr, 1).Select 'pour que la nouvelle ligne de donnee registres soit toujours a l'ecran

Application.EnableEvents = True

Windows("LOGICIEL 60.xls:1").Activate

End Sub[/code]

Rebonjour, je me suis apercu que la ligne qui cause se probleme est: AppActivate "Z80 Simulator IDE" 'active l'application deja ouverte "Z80 Simulator IDE"

Cette ligne se trouve dans le sub "simulateur"

J'ai l'impression qu'on roule dans ce sub lorsque je relache le bouton sur mon fichier Excel, donc il n'est pas detecte.

Si vous avez une idee!

Merci!

Bonjour,

pas testé, mais peut être avec un "DoEvents" dans la procédure "boucler" :

Private Sub Boucler()
Do While Action  'lorsque <STEP+> est presse
   DoEvents
   simulateur
Loop
End Sub

bon après midi

@+

Merci Pierrot de me repondre, car tu es ma seule reponse. Malheureusement ca ne change rien. Le sub exacte est ce qui suit.

Le probleme vient surement du fait que j'ajoute une application non excel, alors que mon bouton est dans un UserForm de mon application principale excel. Je dois te dire que dans le UserForm j'ai un autre bouton "STOP" dans lequel j'ai mis un MsgBOX pour des fin de test. Je dois actionner ce bouton plusieurs fois avant qu'il n'affiche mon MsgBox, ce qui explique surement que lorsque je relache mon bouton STEP+, il ne declenche jamais rien.

Idealement, il faudrais que je t'envoi mon fichier, mais la petite application, il faudrais que tu la telecharge en version gratruite.

Private Sub Boucler()
Application.EnableEvents = True

Do While Action = True 'lorsque <STEP+> est presse
   DoEvents
   simulateur
   'AppActivate "Microsoft Excel"
    UserForm5.CommandButton4.SetFocus
   Application.ScreenUpdating = True
   DoEvents              'Va voir ailleurs si une action est exécutée
Loop
Application.EnableEvents = True
End Sub

Re,

A noter tu peux mettre un point d'arret (F9 dans l'éditeur vba) sur la procédure "up", mais je crains fort qu'elle ne se déclenche pas, l'application excel ,'étant plus l'application active....

Pierrot, apres plusieurs clic, j'arrive au point d'arret. Et c'est tres bizarre ce qui se passe. Meme si Action devient faux,et que ca sort de la boucle, ca finit par revenir en plein millieu du sub simulateur!!! et une boucle sans fin s'execute. Pourtant Do While Action fait bien son travail. Je ne comprend absolument rien!

Bonjour,

As tu essayé de réactivé l'application Excel en fin de procédure "simulateur" ? Sinon pas d'autre idée moi...

bonne journée

@+

Salut Pierrot, j'ai essaye AppActivate "Microsoft Excel" juste apres l'appel de simulateur, sans succes. Je vais oublier la possibilite de boucler.

Merci pour ta participation!

Bonne journee!

Rechercher des sujets similaires à "bouton relache reagit pas"