OVH Cloud OVH Cloud

Stopper une macro jusqu'à l'appui sur une touche

2 réponses
Avatar
Nicolas B.
Bonsoir,

J'ai une macro qui fait des calculs pas à pas. Je voudrais que la macro
s'arrête à un endroit et ne poursuive son exécution que lorsque
l'utilisateur appuie sur la touche espace, cela afin de voir l'évolution des
résultats des calculs sur la feuille. Est-ce possible ?


Merci.

--
Nicolas B.

Adresse @adresse.bidon.com invalide,
E-mail : www.cerbermail.com/?gAAILfkPsC

2 réponses

Avatar
Frédéric Sigonneau
Bonsoir,

Pour 'capturer' l'appui sur la touche Espace, tu peux utiliser ce genre de code
(à recopier dans un module standard) :

'=========================== Public Type KeyboardBytes
kbOctet(0 To 255) As Byte
End Type

Public kbArray As KeyboardBytes

Public Declare Function GetKeyboardState Lib "user32" _
(kbArray As KeyboardBytes) As Long
Public Declare Function SetKeyboardState Lib "user32" _
(kbArray As KeyboardBytes) As Long


Sub test()
'on s'assure que la touche espace est bien
'en position "relevée"
kbArray.kbOctet(&H20) = 0
SetKeyboardState kbArray
'boucle en attendant l'appui sur la touche espace
Do
GetKeyboardState kbArray
DoEvents
Loop While kbArray.kbOctet(&H20) = 0
'la touche espace a été enfoncée
MsgBox "coucou"
End Sub
'===========================
FS
--
Frédéric Sigonneau [MVP Excel - né un sans-culottide]
Gestions de temps, VBA pour Excel :
http://perso.wanadoo.fr/frederic.sigonneau
Si votre question sur Excel est urgente, évitez ma bal !


Bonsoir,

J'ai une macro qui fait des calculs pas à pas. Je voudrais que la macro
s'arrête à un endroit et ne poursuive son exécution que lorsque
l'utilisateur appuie sur la touche espace, cela afin de voir l'évolution des
résultats des calculs sur la feuille. Est-ce possible ?

Merci.

--
Nicolas B.

Adresse @adresse.bidon.com invalide,
E-mail : www.cerbermail.com/?gAAILfkPsC


Avatar
Nicolas B.
Merci, ça me convient parfaitement !

--
Nicolas B.

Adresse @adresse.bidon.com invalide,
E-mail : www.cerbermail.com/?gAAILfkPsC


Bonsoir,

Pour 'capturer' l'appui sur la touche Espace, tu peux utiliser ce
genre de code (à recopier dans un module standard) :

'=========================== > Public Type KeyboardBytes
kbOctet(0 To 255) As Byte
End Type

Public kbArray As KeyboardBytes

Public Declare Function GetKeyboardState Lib "user32" _
(kbArray As KeyboardBytes) As Long
Public Declare Function SetKeyboardState Lib "user32" _
(kbArray As KeyboardBytes) As Long


Sub test()
'on s'assure que la touche espace est bien
'en position "relevée"
kbArray.kbOctet(&H20) = 0
SetKeyboardState kbArray
'boucle en attendant l'appui sur la touche espace
Do
GetKeyboardState kbArray
DoEvents
Loop While kbArray.kbOctet(&H20) = 0
'la touche espace a été enfoncée
MsgBox "coucou"
End Sub
'=========================== >
FS


Bonsoir,

J'ai une macro qui fait des calculs pas à pas. Je voudrais que la
macro s'arrête à un endroit et ne poursuive son exécution que lorsque
l'utilisateur appuie sur la touche espace, cela afin de voir
l'évolution des résultats des calculs sur la feuille. Est-ce
possible ?

Merci.

--
Nicolas B.

Adresse @adresse.bidon.com invalide,
E-mail : www.cerbermail.com/?gAAILfkPsC