[Résolu] [Calc] Lancer une macro toutes les n minutes

Discussions et questions sur tout ce qui concerne la programmation tous langages et tous modules confondus.

Modérateur : Vilains modOOs

Règles du forum
:alerte: 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 !
Avatar de l’utilisateur
Machine Head
Membre hOOnoraire
Membre hOOnoraire
Messages : 123
Inscription : 27 déc. 2005 13:08

[Résolu] [Calc] Lancer une macro toutes les n minutes

Message par Machine Head »

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...
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
ManitOOu
Messages : 2562
Inscription : 26 nov. 2005 13:42

Message par bm92 »

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
Avatar de l’utilisateur
Machine Head
Membre hOOnoraire
Membre hOOnoraire
Messages : 123
Inscription : 27 déc. 2005 13:08

Message par Machine Head »

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.
Windows 7 64 Bits avec AOo 4.1.2
Pierre-Yves Samyn
Grand Maître de l'OOffice
Grand Maître de l'OOffice
Messages : 11276
Inscription : 02 mai 2006 08:42

Message par Pierre-Yves Samyn »

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
Avatar de l’utilisateur
Machine Head
Membre hOOnoraire
Membre hOOnoraire
Messages : 123
Inscription : 27 déc. 2005 13:08

Message par Machine Head »

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 :wink: )

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
ManitOOu
Messages : 2562
Inscription : 26 nov. 2005 13:42

Message par bm92 »

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.
Je pensais à créer manuellement un batch et le mettre manuellement dans une 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
Avatar de l’utilisateur
Machine Head
Membre hOOnoraire
Membre hOOnoraire
Messages : 123
Inscription : 27 déc. 2005 13:08

Message par Machine Head »

Je pense que je vais suivre ton conseil "avisé" et mettre un bouton pour actualiser cela.
En espérant un jour trouver une solution pour que tout cela ne soit plus manuel...

Merci de vos implications.
Windows 7 64 Bits avec AOo 4.1.2
Avatar de l’utilisateur
Machine Head
Membre hOOnoraire
Membre hOOnoraire
Messages : 123
Inscription : 27 déc. 2005 13:08

Message par Machine Head »

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?
Windows 7 64 Bits avec AOo 4.1.2
bm92
ManitOOu
ManitOOu
Messages : 2562
Inscription : 26 nov. 2005 13:42

Message par bm92 »

Machine Head a écrit :Je me demandais comment l'enregistrement automatique des infos de récupération fonctionnait.
C'est très certainement réalisé en C++ comme la plupart des fonctionnalités de base d'OpenOffice.

Je considère ce fil comme terminé.
______
Bernard