Hello,
cokate a écrit :
cc !
cependant je ne vois pas comment en VBA exécuter une macro toutes les 100 (voire 50 ms) puisque je crois que les fonctions Ontime ou même timevalue et timeserial ont une précision de 1sec ? as tu une solution ?
|
Oui, utilise un timer system.
Voici un site ou tu peux trouver les infos dont tu auras besoin pour l'implementation.
Le principe c'est d'utiliser un timer à ~ 50 ms pour venir "pooler". Dans Exel tu lances un timer dès l'ouverture du fichier xls.
Dans ton appli c'est le même truc. Tu lances un timer qui va venir tester l'état du fichier .csv.
Ta boucle principale attend juste l'evenement de fin de programme. Tout se passe dans les fonctions appelé par les timers.
cokate a écrit :
sinon la j'ai essayé avec 1 sec et depuis mon programme C # je fais une boucle while tant que j'ai pas lu le fichier excel (et du coup ca ralentit toute l'application)
|
Le modèle que je te propose est Asynchrone et tu codes du synchrone semble-t-il.
Ouaip ton appli gaspille son temps a attendre alors qu'il faut renvoyer la main au systeme. (c'est la fonction timer qui s'occupe de faire le boulot).
cokate a écrit :
ce serait quand même plus simple d'enregistrer le fichier Excel (ouvert) depuis C# non ? est ce possible ??
|
.
A premiere vue bien sûr mais le problème c'est que toute ta chaine de traitement devient dépendante.
Goutte au timer tu verras c'est simple aussi.
ps : tu peux lancer un autre timer pour la mise à jour des résultats à l'écran. Dans ce cas prevoit un flag de synchro (multi-thread) pour que cela se passe bien.
A+
Message édité par m3z le 29-08-2008 à 11:15:53