Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1619 connectés 

  FORUM HardWare.fr
  Programmation
  VB/VBA/VBS

  Faire tourner une macro en tache de fond

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Faire tourner une macro en tache de fond

n°1794470
JulG
Posté le 01-10-2008 à 15:50:08  profilanswer
 

Bonjour,
 
J'ai un petit souci en VBA sous Excel.
D'un coté j'ai un PC avec une appli tiers qui tourne en temps réel. J'ai la possibilité de réaliser des exports réguliers vers un fichier excel, ce que je fais.
De l'autre coté, j'ai un autre PC avec excel et une feuille d'analyse des données.
 
J'ai codé une macro qui va régulièrement chercher le dernier fichier mais le problème c'est que tant qu'elle tourne l'excel est freezé et du coup je ne peux pas faire mes analyses :(
 
Est-il possible de faire en sorte que ma macro d'import des données tourne en tache de fond et me laisse la main sur excel ?
 
Merci d'avance,
 
Jul

mood
Publicité
Posté le 01-10-2008 à 15:50:08  profilanswer
 

n°1794755
SuppotDeSa​Tante
Aka dje69r
Posté le 02-10-2008 à 11:43:28  profilanswer
 

Bonjour
 
Par "régulierement" tu entends quoi ?
Excel est frisé pour le fichier en question non ? Pas pour un autre fichier ?


---------------
Soyez malin, louez entre voisins !
n°1794967
JulG
Posté le 02-10-2008 à 20:35:51  profilanswer
 

SuppotDeSaTante a écrit :

Bonjour

 

Par "régulierement" tu entends quoi ?
Excel est frisé pour le fichier en question non ? Pas pour un autre fichier ?

 

Le "régulièrement" est variable. Disons qu'un rafraichissement des données de base avec une période inférieur à 5 minutes serait idéal.

 

Et quand je dis que Excel freeze, il s'agit de l'instance excel qui va chercher les données, c'est à dire celle sur laquelle je fais mes calculs. Tant que la macro qui va récupérer les données est active, je ne peux rien faire. A cela je vois deux possibilités :

  • Soit ma macro qui va chercher les données ne s'active que toutes les x minutes puis s'arrête puis redémarre x minutes après etc...
  • Soit ma macro qui va chercher les données tourne en continu et va chercher les données toutes les x minutes avec une boucle "while timer"


Dans les deux cas je ne sais pas comment faire :

  • Comment démarrer automatiquement (sans action de la part de l'utilisateur) une macro toutes les x minutes ? existe-t'il un évènement pour cela ?
  • Comment faire tourner en continu une macro sur un classeur sans empêcher l'utilisation des feuilles de calcul de celui-ci ?


Merci pour votre aide,

 

Jul


Message édité par JulG le 02-10-2008 à 20:38:13
n°1795028
SuppotDeSa​Tante
Aka dje69r
Posté le 02-10-2008 à 22:49:37  profilanswer
 

Et bien fait, tu peux lancer ton timer des que le fichier est ouvert non ?


---------------
Soyez malin, louez entre voisins !
n°1795061
JulG
Posté le 03-10-2008 à 00:29:40  profilanswer
 

SuppotDeSaTante a écrit :

Et bien fait, tu peux lancer ton timer des que le fichier est ouvert non ?


oui mais alors comme la macro tourne, je ne peux pas modifier les cellules de mon fichier (par exemple changer des valeurs de test). C'est ça que j'entends par excel qui freeze... En fait c'est que lorsqu'une macro tourne, je n'ai plus la main sur les feuilles...
 
Jul

n°1795086
Moonschild
Posté le 03-10-2008 à 09:13:04  profilanswer
 

Il parrait evident que tu ne peux modifier des valeurs pendant l'execution de la macro... imagine, tu changes de page pendant une execution, tu te retrouves donc a activer une autre feuille, et donc, les calculs se feront a partir de la feuille que tu viens d'activer, et non de celle qui devrait etre utilisé, ou bien un simple "Me.Textbox1.value" ne fonctionnera plu si tu changes de feuille etc....


---------------
Si Le Travail C'est La Santé, Donnez Le Mien A Quelqu'un De Malade
n°1795094
SuppotDeSa​Tante
Aka dje69r
Posté le 03-10-2008 à 09:50:14  profilanswer
 

JulG a écrit :


oui mais alors comme la macro tourne, je ne peux pas modifier les cellules de mon fichier (par exemple changer des valeurs de test). C'est ça que j'entends par excel qui freeze... En fait c'est que lorsqu'une macro tourne, je n'ai plus la main sur les feuilles...
 
Jul


 
Il sera freezé seulement le temps d'execution. Ta macro ne mets pas 10mn a s'executer si ?
Je pars du principe que tu executes ta macro toutes les 5 minutes et qu'elle met 20sc a s'executer (c'est deja pas mal 20sc...)
Bah tu auras un freeze pendant 20sc... et donc 4mn40 pour bosser dessus.
 
Regarde la fonction DoEvents.


---------------
Soyez malin, louez entre voisins !
n°1795216
Moonschild
Posté le 03-10-2008 à 14:07:31  profilanswer
 

SuppotDeSaTante a écrit :


 
Il sera freezé seulement le temps d'execution. Ta macro ne mets pas 10mn a s'executer si ?
Je pars du principe que tu executes ta macro toutes les 5 minutes et qu'elle met 20sc a s'executer (c'est deja pas mal 20sc...)
Bah tu auras un freeze pendant 20sc... et donc 4mn40 pour bosser dessus.
 
Regarde la fonction DoEvents.


 
Tu oublies le temps de la sauvegarde automatique  :whistle:  
Puis si c'est comme les miennes (avec import a partir d'une base aux *staÿtes* toussa) t'en a pour 15 20min d'execution quoi...:d


---------------
Si Le Travail C'est La Santé, Donnez Le Mien A Quelqu'un De Malade
n°1795293
SuppotDeSa​Tante
Aka dje69r
Posté le 03-10-2008 à 15:20:11  profilanswer
 

Moonschild a écrit :


 
Tu oublies le temps de la sauvegarde automatique  :whistle:  
Puis si c'est comme les miennes (avec import a partir d'une base aux *staÿtes* toussa) t'en a pour 15 20min d'execution quoi...:d


 
Ca n'etait pas precisé dans son post... Pis excel n'est pas un SGBD.


---------------
Soyez malin, louez entre voisins !
n°1795304
JulG
Posté le 03-10-2008 à 15:37:10  profilanswer
 

SuppotDeSaTante a écrit :


 
Ca n'etait pas precisé dans son post... Pis excel n'est pas un SGBD.


 
Le but de mon idée est que l'utilisateur n'a pas besoin d'activer manuellement la macro... Sinon je n'ai plus du tout de problème : le freeze dure une dizaine de secondes et tout est fini. Mais là je souhaite que mes données viennent toutes seules.
 
Est ce qu'il est possible de démarrer automatiquement (sans action de la part de l'utilisateur) une macro toutes les x minutes ou de faire tourner en continu une macro sur un classeur sans empêcher l'utilisation des feuilles de calcul de celui-ci ?
 
Jul

mood
Publicité
Posté le 03-10-2008 à 15:37:10  profilanswer
 

n°1795312
SuppotDeSa​Tante
Aka dje69r
Posté le 03-10-2008 à 15:43:30  profilanswer
 

Comme dis plus haut, tu auras forcement un freez de 10sc.
Pour demarrer automatiquement il suffit de le mettre dans le demarrage du fichier Private Sub Workbook_Open()
Et avec une boucle de temps de lui dire de le faire toutes les 5mn...
 
Sinon, je ne sais pas ce que tu as d'installer sur ta machine, mais normalement le controle Timer permet de le faire en tache de fond. Mais il ne doit pas etre exploitable avec Office seulement...


---------------
Soyez malin, louez entre voisins !
n°1795318
Moonschild
Posté le 03-10-2008 à 15:47:24  profilanswer
 

SuppotDeSaTante a écrit :

Pour demarrer automatiquement il suffit de le mettre dans le demarrage du fichier Private Sub Workbook_Open()
Et avec une boucle de temps de lui dire de le faire toutes les 5mn...


Procedure de declanchement de macro en fonction du temps : Application.ontime (Regarde l'aide dessus, elle est complete :) )
J'espere que tu trouveras ta solution avec ca :jap:


Message édité par Moonschild le 03-10-2008 à 15:47:57

---------------
Si Le Travail C'est La Santé, Donnez Le Mien A Quelqu'un De Malade

Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  VB/VBA/VBS

  Faire tourner une macro en tache de fond

 

Sujets relatifs
[Résolu] - [Batch Dos] créer un tache planifiée J+3Macro d'envoi d'emails fonctionnant mais pas dans perso.xls
Rendre transparent le fond d'un CEdit[VBA] Macro exécutée pas à pas...
Comment mettre un fond transparent FLASH 8Manipulation d'un nom de template dans une #define-macro
macro pour jeuxvideo aide!Import Access fichier 'txt' à modifier via macro ...
[VBA EXCEL 2007] macro ultra lenteMacro qui 'executent toutes seules??
Plus de sujets relatifs à : Faire tourner une macro en tache de fond


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR