Arreter une boucle

vbnino Messages postés 218 Date d'inscription jeudi 13 juillet 2006 Statut Membre Dernière intervention 11 juillet 2010 - 8 sept. 2008 à 15:11
jrivet Messages postés 7392 Date d'inscription mercredi 23 avril 2003 Statut Membre Dernière intervention 6 avril 2012 - 9 sept. 2008 à 09:04
Salut!

 -J'ai par exemple une boucle :
   Dim i as long
   Dim z as long
     
        for i=0 to 1000
                z=i
        next i

Comment sortir de cette boucle l'arreter ,si on appuie sur un autre button.

-Merci de m'aider

10 réponses

lillith212 Messages postés 1229 Date d'inscription vendredi 16 novembre 2007 Statut Membre Dernière intervention 16 juin 2009
8 sept. 2008 à 15:21
salut,

Je suppose que la sortie de ta boucle est aléatoire?
Tu dois te servir de la commande doEvent pour ne pas figer ton application et ainsi avoir acces à un autre bouton par exemple...
Bon courage

S.L.B.
<hr />
0
Utilisateur anonyme
8 sept. 2008 à 15:29
Salut,

Il suffit d'ajouter un Exit For à la condition que l'on appuis sur le bouton. Et aussi un Doevents pour pouvoir appuyer dessus (cf la réponse de lillith)

__________
  Kenji
0
vbnino Messages postés 218 Date d'inscription jeudi 13 juillet 2006 Statut Membre Dernière intervention 11 juillet 2010
8 sept. 2008 à 15:29
J'ai utilisé le Doevents , mais cela marche
 
  -J'ai eu un probléme avec Inet à savoir il ne récupére pas le code html d'une page web en intégrale , alors j'ai du utilisé le .NET pour afficher le code HTML sous VB6.
0
vbnino Messages postés 218 Date d'inscription jeudi 13 juillet 2006 Statut Membre Dernière intervention 11 juillet 2010
8 sept. 2008 à 15:38
Où ajouter Exit for
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
cs_casy Messages postés 7741 Date d'inscription mercredi 1 septembre 2004 Statut Membre Dernière intervention 24 septembre 2014 40
8 sept. 2008 à 16:38
Tout a été dit mais un peu dans le désordre.

Reprennons :
- Il faut mettre un DoEvents dans le code de la boucle pour que la boucle ne prenne pas tout le temps d'execution et laisse à l'application le temps de traiter d'autre évènements comme le click sur un bouton.
- dans ta boucle, pour en sortir, il faut mettre un Exit For. La sortie se fera généralement sur condition, donc ça sera du style If Condition then Exit For.
- Ensuite il faut que la condition soit remplie à un moment donné sur le click d'un bouton par exemple.

Ca pourrait donner par exemple :

Public MaCondition as boolean 'déclaration en variable globale

Public sub toto()
    ........
    MaCondition = False
    For i=0 to 1000
        ........
        DoEvents
        If MaCondition Then Exit For
    Next

Public sub button_click(.....)
    MaCondition = True
End Sub

---- Sevyc64  (alias Casy) ----<hr size="2" width="100%" /># LE PARTAGE EST NOTRE FORCE #    http://aide-office-vba.monforum.com/index.php
0
Kristof_Koder Messages postés 918 Date d'inscription vendredi 3 août 2007 Statut Membre Dernière intervention 27 octobre 2008 10
8 sept. 2008 à 17:02
Juste un petit ajout à ce que te proposes casy :
Ne pas oublier de mettre "MaCondition = False" avant le For, car si tu dois lancer ta boucle plusieurs fois de suite, tout arrêt d'une boucle provoquera la sortie de la boucle suivante après la 1ere itération.
0
cs_casy Messages postés 7741 Date d'inscription mercredi 1 septembre 2004 Statut Membre Dernière intervention 24 septembre 2014 40
8 sept. 2008 à 17:13
Besoin de lunettes Kristof
Je l'avis mis

---- Sevyc64  (alias Casy) ----<hr size="2" width="100%" /># LE PARTAGE EST NOTRE FORCE #    http://aide-office-vba.monforum.com/index.php
0
vbnino Messages postés 218 Date d'inscription jeudi 13 juillet 2006 Statut Membre Dernière intervention 11 juillet 2010
8 sept. 2008 à 18:30
Merci pour les réponses

 mais mon application se fige même si je place 4 DoEvents

 -Je croix que c'est du au .NET 
0
Kristof_Koder Messages postés 918 Date d'inscription vendredi 3 août 2007 Statut Membre Dernière intervention 27 octobre 2008 10
8 sept. 2008 à 19:21
Sorry !!
0
jrivet Messages postés 7392 Date d'inscription mercredi 23 avril 2003 Statut Membre Dernière intervention 6 avril 2012 60
9 sept. 2008 à 09:04
Salut,
De toute façon sans le code utilisé a présent nous n'irons pas très loin...

Pas besoin de 4 DoEvents. 1 seul correctement placé devrait suffire mais la encore sans le code utilisé... rien ne peu être fait.

De plus j'espère que la boucle est plus grande que 1000 car avoir le temps d'appuyer sur un bouton avant 1000 ....  à part peu être si tu contrôle le début de la boucle.... (et encore...)

@+: Ju£i€n
Pensez: Réponse acceptée
0
Rejoignez-nous