VB attendre lors de l'exécution... [Résolu]

CDAlstom 69 Messages postés mercredi 21 septembre 2005Date d'inscription 6 mars 2006 Dernière intervention - 15 nov. 2005 à 16:52 - Dernière réponse : CDAlstom 69 Messages postés mercredi 21 septembre 2005Date d'inscription 6 mars 2006 Dernière intervention
- 16 nov. 2005 à 09:46
Existe-t-il une fonction toute faite pour attendre pendant "n" sec lors de l'exécution (par exemple pour laisser le temps à un fichier d'être écrit sur le disque) du genre: wait(n) et donc on attend "n" secondes pendant lesquelles il ne se passe rien... Merci!
Afficher la suite 

10 réponses

Meilleure réponse
cs_DARKSIDIOUS 15838 Messages postés jeudi 8 août 2002Date d'inscription 4 mars 2013 Dernière intervention - 15 nov. 2005 à 17:28
3
Merci
Utilise la fonction de l'API Windows Sleep

_____________________________________________________________________
DarK Sidious

Un API Viewer (pour le VB, VB.NET, C, C# et Delphi) tout en français : www.ProgOtoP.com/popapi/

Merci cs_DARKSIDIOUS 3

Avec quelques mots c'est encore mieux Ajouter un commentaire

Codes Sources a aidé 94 internautes ce mois-ci

Meilleure réponse
CDAlstom 69 Messages postés mercredi 21 septembre 2005Date d'inscription 6 mars 2006 Dernière intervention - 16 nov. 2005 à 09:46
3
Merci
Je me réponds à moi-même: il faut déclarer cette API au début du code ainsi:

Private
Declare
Sub
Sleep Lib <VAR>"kernel32"</VAR> (ByVal dwMilliseconds As Long)

...

Merci, vous m'avez mis sur le bon chemin!

Merci CDAlstom 3

Avec quelques mots c'est encore mieux Ajouter un commentaire

Codes Sources a aidé 94 internautes ce mois-ci

cs_trabice 328 Messages postés mercredi 26 novembre 2003Date d'inscription 24 novembre 2005 Dernière intervention - 15 nov. 2005 à 17:29
0
Merci
sleep ne stope pas tout le programme?

il ne peut pas s inspirer de ca plutot?
http://www.vbfrance.com/forum.v2.aspx?ID=600214#6
cs_DARKSIDIOUS 15838 Messages postés jeudi 8 août 2002Date d'inscription 4 mars 2013 Dernière intervention - 15 nov. 2005 à 17:36
0
Merci
Ben si, sleep fait une pause dans le programme, mais c'est pas ce qu'il demande ?



Si son but, c'est d'attendre qu'un fichier soit copié, ca peut fonctionner et sera bien plus optimisé qu'une boucle While !



Quand au lien que tu donne, je vois pas le rapport !

_____________________________________________________________________
DarK Sidious

Un API Viewer (pour le VB, VB.NET, C, C# et Delphi) tout en français : www.ProgOtoP.com/popapi/
cs_trabice 328 Messages postés mercredi 26 novembre 2003Date d'inscription 24 novembre 2005 Dernière intervention - 15 nov. 2005 à 17:48
0
Merci
pour moi ca question c'était plus l'attente d'une exécution d'un traitement dans programme.si c'est le cas,un sleep vas bloquer tout son programme, faux?
dans ce cas, il cache la feuille sur laquelle il était avant de lancer son traitement, met un frm vierge avec un label "patientez" et réaffiche sa feuille quand son traitement est terminé.
cs_DARKSIDIOUS 15838 Messages postés jeudi 8 août 2002Date d'inscription 4 mars 2013 Dernière intervention - 15 nov. 2005 à 18:01
0
Merci
trabice : si la copie est synchrone (donc bloque le programme tant
qu'elle n'est pas finie), pas besoin de faire un sleep : il se fait
tout seul.

Si la copie est asynchrone, et que tu ne veux rien éxécuter tant que la
copie n'est pas finie, ta méthode ne suffit pas : elle ne bloquera pas
l'éxécution du reste de la macro, elle ne fera qu'afficher une feuille
=> ce n'est pas la solution !



Un sleep reste, je pense, la meilleure solution : tu fait une boucle :



while (fichier non copié)

Sleep 1000

Wend


Ainsi, tu n'occupe pas 100 % du processeur durant la copie, ce qui est le cas avec une simple boucle

while (fichier non copié)


DoEvents


Wend



J'utilise ce genre de code depuis des années, et ca marche à merveille !

_____________________________________________________________________
DarK Sidious

Un API Viewer (pour le VB, VB.NET, C, C# et Delphi) tout en français : www.ProgOtoP.com/popapi/
cs_trabice 328 Messages postés mercredi 26 novembre 2003Date d'inscription 24 novembre 2005 Dernière intervention - 15 nov. 2005 à 18:08
0
Merci
j'ai pas dis que tu avais tord :-)
je testerai
while (fichier non copié)
Sleep 1000
Wend

:-)

bon ben normalement c'est réponse acceptée pour toi ca.

bon prog
CDAlstom 69 Messages postés mercredi 21 septembre 2005Date d'inscription 6 mars 2006 Dernière intervention - 15 nov. 2005 à 21:37
0
Merci
lol je pensais pas avoir tant de réponses! Je testerai demain mais pour éclaircir ma question, en gros, ce que je voudrais c'est qu'entre l'instruction i et l'instruction i+1, il se passe un nombre donnée de secondes que le prog est le temps de faire ceci ou cela (ex comme je le disais écrire dans un fichier parce que l'instruction d'après va lire dans ce fichier)...

Merci à vous! (j'accepte la réponse de "Dark" mais merci à vous tous)
crenaud76 4172 Messages postés mercredi 30 juillet 2003Date d'inscription 9 juin 2006 Dernière intervention - 16 nov. 2005 à 00:56
0
Merci
Une ecriture dans un fichier est synchrone ! Donc si tu écris dans un fichier à l'instruction i, c'est dispo à l'instruction i+1 !!
Du moins si l'écriture se fait bien via des fonctions VB !
Si to "ecriture de fichier" se fait via un Shell() sur une commande redirigé, alors je te conseillerais plutot :
1- Soit d'opter pour une autre méthode que le shell() : API par exemple ?! Tout dépend de ce que tu veux faire au final
2- soit d'opter pour une version synchrone du shell() : voir mes souces.

CR
CDAlstom 69 Messages postés mercredi 21 septembre 2005Date d'inscription 6 mars 2006 Dernière intervention - 16 nov. 2005 à 09:20
0
Merci
Ouep... J'ai testé ce matin... "Sleep", ça sort d'où?!? Parce qu'il croît que c'est une fonction et donc elle est pas définie...
Et pour éclaircir encore ma question qui est vraiment simple en fin de compte... Je veux juste faire une temporisation d'une durée donnée à un endroit donnée...
Ex:
instruction i
'attendre "s" secondes
instruction i+1

Merci d'avance!

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.