![]() |
|
Forum
|
|
|
#1 (permalink) |
|
Guest
Messages: n/a
|
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 |
| Liens sociaux |
| Outils de la discussion | |
|
|