Pause Simple, mais je ne suis pas doué

Résolu
Konyl Messages postés 25 Date d'inscription lundi 12 novembre 2007 Statut Membre Dernière intervention 7 octobre 2010 - 7 oct. 2010 à 11:36
Konyl Messages postés 25 Date d'inscription lundi 12 novembre 2007 Statut Membre Dernière intervention 7 octobre 2010 - 7 oct. 2010 à 16:18
Bonjour,

Je dois exécuter une macro de suivis toute simple, qui rafraichie des données via Microsoft Query. Mais comment faire pour looper sans condition ? La boucle sera infinie jusqu'a ce qu'un condition soit remplie (encore a définir). Si vous pouviez m'aider ce serait formidable, merci d'avance.

Sub Refresh()
    Application.ScreenUpdating = False
    Sheets("PCREPPDSS").Select

'C'est ici que je voudrais commencer ma boucle infinie

    Selection.QueryTable.Refresh BackgroundQuery:=False
    Application.Wait Time + TimeSerial(0, 1, 0)

'Et ici que je souhaiterais la finir
    
       
End Sub

5 réponses

cs_Jack Messages postés 14007 Date d'inscription samedi 29 décembre 2001 Statut Modérateur Dernière intervention 28 août 2015 79
7 oct. 2010 à 16:16
J'ai oublié le While
Do While Not bDemandeArret
     Instructions
Loop
3
cs_Jack Messages postés 14007 Date d'inscription samedi 29 décembre 2001 Statut Modérateur Dernière intervention 28 août 2015 79
7 oct. 2010 à 12:37
Salut

Dans quel logiciel es-tu ? Excel, Word, Access, PowerPoint, Publisher, Visio ... ?

Je dirai :
   Do While (ma condition d'arrêt n'est pas vraie)
      Ton code QueryTable
      Ton code Wait Time
      DoEvents  ' par sécurité
   Loop
mais je ne comprends pas trop ta difficulté ...

Vala
Jack, MVP VB
NB : Je ne répondrai pas aux messages privés

Le savoir est la seule matière qui s'accroit quand on la partage (Socrate)
0
Konyl Messages postés 25 Date d'inscription lundi 12 novembre 2007 Statut Membre Dernière intervention 7 octobre 2010
7 oct. 2010 à 12:46
Bonjour et merci,

En fait, c'est simplement que je ne veux pas, pour le moment de condition d'arret...

Est ce qu'un Do While / Loop peut s'utiliser sans condition ? Je n'ai pas l'impression, mais comme je le dis toujours, je suis une buse...

Merci pour ton aide en tout cas.
0
cs_Jack Messages postés 14007 Date d'inscription samedi 29 décembre 2001 Statut Modérateur Dernière intervention 28 août 2015 79
7 oct. 2010 à 16:15
Si, tu peux faire
Do
     Instructions
Loop
mais je te le déconseille.
En cas de demande de fermeture de l'application par fermeture de session/d'arrêt, c'est le genre de code qui provoque les fenêtres "attente de fermeture" ...
Il faudrait, au minimum, :
- une variable Booléenne, bDemandeArret,que tu déclarerais au niveau d'un module, en Public
- que tu positionnerais à False avant de lancer la boucle
- et que tu passerais à True lors d'une demande de fermeture du programme.
Ne sachant toujours pas dans quoi tu programmes, difficile de te dire comment s'appelle la routine qui s'exécute lors d'une demande de fermeture.
En général, ça ressemble à Machin_QueryUnload ou Machin__BeforeClose (facile à trouver, cherche un peu)

Ta boucle deviendrait donc
Do Not bDemandeArret
     Instructions
Loop
0

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

Posez votre question
Konyl Messages postés 25 Date d'inscription lundi 12 novembre 2007 Statut Membre Dernière intervention 7 octobre 2010
7 oct. 2010 à 16:18
Merci beaucoup !
0