sortir proprement d'une boucle utilisant le Timer (dans un UF)

L

Limbo

Guest
Bonsoir,


je vous joins un ch'ti exemple, "souriant", pour illustrer mon souci.


petit problème lors de l'utilisation d'une boucle temporelle :

Private Sub UserForm_Activate()

' première partie : attente de 2 secondes avant que des contrôles images soient affichés dans l'UF
timedebut = Timer
DoEvents
While Timer < timedebut + 2
Wend
Image1.Visible = True
Image2.Visible = True
Image3.Visible = True

' seconde partie : l'un des contrôles images "clignote" (s'affiche ou pas) toutes les secondes; la boucle dure 10 secondes
Do
resultat = Timer Mod 2
DoEvents
If resultat = 0 Then Image1.Visible = False Else Image1.Visible = True
Loop Until Timer = timedebut + 10

End Sub

le code ci-dessus fonctionne, mais si je referme mon UF avant que les 10 secondes soient écoulées, Excel tarde un peu à reprendre la main (en fait il attend que les 10 secondes soient passées, alors que mon UF n'est plus chargé en mémoire).
Et si je lance à nouveau la procédure avant 10s, alors là Excel poireaute tranquillou et je suis obligé d'arrêter manuellement la macro...

DoEvents donne la priorité au système d'exploitation si j'ai bien compris, y a-t-il une commande inverse???

peut-être que j'oublie de réinitialiser qqc?

En fait, j'aimerais surtout pouvoir lui dire de boucler jusqu'à ce que je clique sur l'image2 pour sortir... mais je n'arrive pas à trouver la syntaxe....


Merci par avance pour toute suggestion.

Limbo
 

Pièces jointes

  • Ufcows.zip
    35.3 KB · Affichages: 55

Statistiques des forums

Discussions
311 725
Messages
2 081 941
Membres
101 847
dernier inscrit
Djigbenou