CDAlstom
Messages postés69Date d'inscriptionmercredi 21 septembre 2005StatutMembreDernière intervention 6 mars 2006
-
15 nov. 2005 à 16:52
CDAlstom
Messages postés69Date d'inscriptionmercredi 21 septembre 2005StatutMembreDernière intervention 6 mars 2006
-
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!
cs_trabice
Messages postés328Date d'inscriptionmercredi 26 novembre 2003StatutMembreDernière intervention24 novembre 20051 15 nov. 2005 à 17:48
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
Messages postés15814Date d'inscriptionjeudi 8 août 2002StatutMembreDernière intervention 4 mars 2013130 15 nov. 2005 à 18:01
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/
CDAlstom
Messages postés69Date d'inscriptionmercredi 21 septembre 2005StatutMembreDernière intervention 6 mars 2006 15 nov. 2005 à 21:37
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
Messages postés4172Date d'inscriptionmercredi 30 juillet 2003StatutMembreDernière intervention 9 juin 200628 16 nov. 2005 à 00:56
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.
CDAlstom
Messages postés69Date d'inscriptionmercredi 21 septembre 2005StatutMembreDernière intervention 6 mars 2006 16 nov. 2005 à 09:20
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