[Résolu] [Calc] Lancer une macro toutes les n minutes
Modérateur : Vilains modOOs
Règles du forum
Balisage obligatoire dans cette section !
Aidez-nous à vous aider au mieux en balisant correctement votre question : reportez-vous sur les règles de cette section avant de poster !
Aidez-nous à vous aider au mieux en balisant correctement votre question : reportez-vous sur les règles de cette section avant de poster !
-
Machine Head
- Membre hOOnoraire

- Messages : 123
- Inscription : 27 déc. 2005 13:08
[Résolu] [Calc] Lancer une macro toutes les n minutes
Bonsoir,
j'ai un tableur sur lequel s'affichent les stocks de ma production, je souhaiterais que ces stocks soient actualisés presque en temps réel. Pour connaitre la valeur de ceux-ci, il faut interroger une base de données MySQL...
Evidemment la méthode reload ne peut s'appliquer ici. A défaut d'avoir une actualisation en temps réel, je souhaiterais que toutes les X minutes, une interrogation de ma base de données (par macro) me transmette l'état des stocks sur Calc.
Avez-vous une idée?
PS: Pour tout ce qui est requête ou rappatriement des données sous calc pas de soucis. Il me faudrait juste quelques conseils sur le lancement automatique d'une macro à intervalle régulier...
j'ai un tableur sur lequel s'affichent les stocks de ma production, je souhaiterais que ces stocks soient actualisés presque en temps réel. Pour connaitre la valeur de ceux-ci, il faut interroger une base de données MySQL...
Evidemment la méthode reload ne peut s'appliquer ici. A défaut d'avoir une actualisation en temps réel, je souhaiterais que toutes les X minutes, une interrogation de ma base de données (par macro) me transmette l'état des stocks sur Calc.
Avez-vous une idée?
PS: Pour tout ce qui est requête ou rappatriement des données sous calc pas de soucis. Il me faudrait juste quelques conseils sur le lancement automatique d'une macro à intervalle régulier...
Dernière modification par Machine Head le 12 oct. 2007 12:05, modifié 1 fois.
Windows 7 64 Bits avec AOo 4.1.2
-
bm92
- ManitOOu

- Messages : 2562
- Inscription : 26 nov. 2005 13:42
Bonsoir,
Je vois plusieurs solutions
1 - le document Calc est ouvert, une macro tourne en permanence et exécute une actualisation toutes les X minutes (utiliser Wait( ) dans la boucle).
2 - le document Calc est ouvert; la macro du document est lancée périodiquement par un programme en ligne de commande. Sous XP on pourrait lancer un batch par une tâche planifiée. Sous Linux le shell a toutes facilités.
3 - ne pas faire de macro, mais utiliser un programme extérieur, par exemple en Delphi ou VB ou VBScript, qui pilote Calc à travers COM.
______
Bernard
Je vois plusieurs solutions
1 - le document Calc est ouvert, une macro tourne en permanence et exécute une actualisation toutes les X minutes (utiliser Wait( ) dans la boucle).
2 - le document Calc est ouvert; la macro du document est lancée périodiquement par un programme en ligne de commande. Sous XP on pourrait lancer un batch par une tâche planifiée. Sous Linux le shell a toutes facilités.
3 - ne pas faire de macro, mais utiliser un programme extérieur, par exemple en Delphi ou VB ou VBScript, qui pilote Calc à travers COM.
______
Bernard
-
Machine Head
- Membre hOOnoraire

- Messages : 123
- Inscription : 27 déc. 2005 13:08
Bonjour,
merci de ta réponse.
Pour la première solution, le wait bloque l'ensemble de la feuille alors que j'ai besoin de faire d'autres opérations dessus.
Pour la troisième, je n'ai pas les compétences en programmation pour y arriver.
La seconde est celle qui me parait la plus abordable, mais là aussi je manque un peu de connaissances.
Comment aborde-t-on le problème?
Voilà comment j'imagine le truc:
A l'ouverture du document, une macro s'execute pour créer une tâche planifiée sous windows. Cette dernière doit lancer la macro d'actualisation toutes les X minutes. A la fermeture du document, on stoppe la tâche planifiée.
Dites moi ce que vous en pensez, merci.
merci de ta réponse.
Pour la première solution, le wait bloque l'ensemble de la feuille alors que j'ai besoin de faire d'autres opérations dessus.
Pour la troisième, je n'ai pas les compétences en programmation pour y arriver.
La seconde est celle qui me parait la plus abordable, mais là aussi je manque un peu de connaissances.
Comment aborde-t-on le problème?
Voilà comment j'imagine le truc:
A l'ouverture du document, une macro s'execute pour créer une tâche planifiée sous windows. Cette dernière doit lancer la macro d'actualisation toutes les X minutes. A la fermeture du document, on stoppe la tâche planifiée.
Dites moi ce que vous en pensez, merci.
Windows 7 64 Bits avec AOo 4.1.2
-
Pierre-Yves Samyn
- Grand Maître de l'OOffice

- Messages : 11276
- Inscription : 02 mai 2006 08:42
Bonjour
Je n'avais pas eu le temps de suivre le résultat mais ce fil traite d'un sujet approchant :
http://user.services.openoffice.org/fr/ ... asc-0.html
Je n'avais pas eu le temps de suivre le résultat mais ce fil traite d'un sujet approchant :
http://user.services.openoffice.org/fr/ ... asc-0.html
-
Machine Head
- Membre hOOnoraire

- Messages : 123
- Inscription : 27 déc. 2005 13:08
Bonjour Pierre-Yves,
Avant de poster, j'avais parcouru quelques threads dont celui-ci. J'ai même pris le fichier pour étudier la macro mais ca me parait un peu usine à gaz par rapport à ce que je sais faire. Donc je voulais savoir si des utilisateurs d'un niveau supérieur connaissaient une méthode un peu plus directe et rapide pour me faire gagner un peu de temps (précieux
)
La méthode de BM me semble intéressante et si c'est réalisable facilement je prends.
Sinon, je me pencherais davantage sur ce fichier "usine à gaz"
Merci en tout cas pour cette piste
JP
Avant de poster, j'avais parcouru quelques threads dont celui-ci. J'ai même pris le fichier pour étudier la macro mais ca me parait un peu usine à gaz par rapport à ce que je sais faire. Donc je voulais savoir si des utilisateurs d'un niveau supérieur connaissaient une méthode un peu plus directe et rapide pour me faire gagner un peu de temps (précieux
La méthode de BM me semble intéressante et si c'est réalisable facilement je prends.
Sinon, je me pencherais davantage sur ce fichier "usine à gaz"
Merci en tout cas pour cette piste
JP
Windows 7 64 Bits avec AOo 4.1.2
-
bm92
- ManitOOu

- Messages : 2562
- Inscription : 26 nov. 2005 13:42
Je pensais à créer manuellement un batch et le mettre manuellement dans une tâche planifiée.Machine Head a écrit :A l'ouverture du document, une macro s'execute pour créer une tâche planifiée sous windows. Cette dernière doit lancer la macro d'actualisation toutes les X minutes. A la fermeture du document, on stoppe la tâche planifiée.
Mettre en place tout ça par macro, je ne sais pas faire.
Si dans ton travail sur le document Calc tu exécutes des macros, cela risque d'entrer en conflit avec une macro d'actualisation lancée périodiquement. Basic n'est pas prévu pour des tâches concurrentes.
AMHA tu es en train de faire un travail qui n'est plus dans les cordes d'OpenOffice, mais plutôt d'une application faite avec un langage de programmation dédié.
Une solution bien plus simple, c'est de mettre un bouton sur ton document, l'utilisateur le clique pour actualiser quand il le souhaite...
Ou un bouton déclenchant une boucle d'actualisation périodique, mais pouvant être arrêtée en appuyant sur un deuxième bouton. Ce qui redonne la main à l'utilisateur.
______
Bernard
-
Machine Head
- Membre hOOnoraire

- Messages : 123
- Inscription : 27 déc. 2005 13:08
-
Machine Head
- Membre hOOnoraire

- Messages : 123
- Inscription : 27 déc. 2005 13:08
A propos de mon problème je pensais à une petite astuce qui dépasse, c'est sur, mon niveau de compétence.
Je me demandais comment l'enregistrement automatique des infos de récupération fonctionnait. Est-ce une simple macro? Est-il possible de lui ajouter qqes ligne de commandes pour qu'il actualise les données en même temps? Ou alors est-il possible de se baser sur celui-ci pour créer un déclenchement automatique de l'actualisation des données?
Je me demandais comment l'enregistrement automatique des infos de récupération fonctionnait. Est-ce une simple macro? Est-il possible de lui ajouter qqes ligne de commandes pour qu'il actualise les données en même temps? Ou alors est-il possible de se baser sur celui-ci pour créer un déclenchement automatique de l'actualisation des données?
Windows 7 64 Bits avec AOo 4.1.2
-
bm92
- ManitOOu

- Messages : 2562
- Inscription : 26 nov. 2005 13:42