Macro: commande SLEEP empeche ligne precedente de masquer image

Fermé
chris9625 - 16 sept. 2017 à 13:18
 chris9625 - 16 sept. 2017 à 17:18
Bonjour,

J'ai créer une macro qui commence par masquer des image (.Visible=False) plus loin dans le code j'utilise une boucle avec la commande SLEEP pour attendre un appui sur la touche 'espace'.
Lorsque je met un pt d'arrêt avant la boucle, mes images son bien masquées. Si je lance la macro complète, les images ne sont masquée, qu'après le fameuse boucle.

Auriez vous une idée pour expliquer ce phénomène ou mieux une solution.

Declare Function GetAsyncKeyState Lib "user32" (ByVal vKey As Long) As Integer
Declare Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As Long)

Sub Macro1()

'sur appui bouton de lancement, remise à zero de la page et controle des données
Sheets("Feuil1").Pictures("Passant").Visible = False
.
.
.
'atente appui sur barre espace
Do
Sleep Duree_boucle
Chrono = Chrono + Duree_boucle
If Chrono > 30000 Then
GoTo Drap_Appui
End If
Loop Until GetAsyncKeyState(32) <> 0

Drap_Appui:


Merci
A voir également:

2 réponses

f894009 Messages postés 17205 Date d'inscription dimanche 25 novembre 2007 Statut Membre Dernière intervention 19 octobre 2024 1 709
16 sept. 2017 à 15:56
Bonjour,

essayez comme ceci:

    Do
        DoEvents
        Sleep Duree_boucle
        Chrono = Chrono + Duree_boucle
        If Chrono > 30000 Then
            GoTo Drap_Appui
        End If
    Loop Until GetAsyncKeyState(32) <> 0
1
Merci ,
c'était la bonne solution.
La commande "DoEvents" rend effectivement la main au système.

Et encore merci, bloquer la dessus, m'enervait
0