bonjour
je voudrais lancer automatiquement une macro a une certaine heure.
par exemple, je voudrais que Windows déclanche a 8 heures du matin telle ou telle macro.
comment puis je faire ceci?
dans quel partie du site je peux regarder
merci
bonjour
je voudrais lancer automatiquement une macro a une certaine heure.
par exemple, je voudrais que Windows déclanche a 8 heures du matin telle ou telle macro.
comment puis je faire ceci?
dans quel partie du site je peux regarder
merci
Pour que ta macro soit lancée, ton classeur doit être ouvert. Peux-tu garder ton fichier ouvert ?
Si oui, tu peux créer une macro se lançant elle-même toutes les huit heures
Il faut prévoir une macro qui te permette d'arrêter LaMacro.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4 Sub LaMacro() 'Ton code Application.OnTime Now + TimeValue("08:00:00"), "LaMacro" End sub
Tu peux également faire en sorte que l'application Excel ne soit pas visible bien qu'active... mais c'est un peu plus compliqué...
Tu dis ce que tu "peux" faire
merci pour ta réponse.
Je veux lancer une macro vers 8 heures du matin, et qui se termine vers 17heures.
alors c'est assez intensifs et long comme runtime.
Il faudrait que l'ordinateur "se repose" le reste du temps.
Est-ce possible de le mettre en veille a partir d'une certaine heure, et de quitter la mise en veille vers 8 heures du matin (on est d'accors, cela ne relève plus de excel)
ce que tu viens de me dire m'intéresse.
Application.OnTime Now + TimeValue("08:00:00"), "LaMacro"
Ca permet si j'ai bien comris de lancer la macro dans 8 heures (oui?)
moi, je veux la lancer tous les jours à 8heures du matin
Comment tu fais?Il faut prévoir une macro qui te permette d'arrêter LaMacro.
Pour que la macro ne s'exécute qu'une fois, si tu définis l'heure de départ, tu n'as pas besoin d'une autre macro
Pour lancer la macro à une heure fixe, c'est
Mais regarde l'aide en ligne à OnTime, tout est expliqué.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 Sub Depart() Application.OnTime TimeValue("08:00:00"), "LaMacro" End sub
Pour mettre en veille, ça ne concerne plus Excel, comme tu l'as compris. A la limite tu pourrais peut-être le faire en utilisant les API de Windows (?) mais quant à redémarrer la macro, là, à part une solution hard, je ne vois pas.
Si quelqu'un peut démarrer le micro avant huit heures, tu peux placer le nom du fichier dans Démarrage : Sous Windows -> Bouton démarrer -> Programmes -> Démarrage
A l'ouverture de ton fichier, un appel à Depart, dans l'événement Open de ThisWorkbook lance le processus.
Et tu places les macro Depart et LaMacro dans un module standard. LaMacro ne contenant plus que ton code (sans la ligne placée désormais dans la sub Depart
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 Private Sub Workbook_Open() Depart End Sub
Une autre idée : tu pourrais mettre ta macro en attente en reprenant la syntaxe de ma première réponse et en conservant la macro Depart.
LaMacro deviendrait alors :
L'UC est inactive tant que l'heure n'est pas atteinte (contrairement à Wait) la mise en veille de l'écran fonctionne. Reste à voir si la macro démarrera bien à huit heures malgré la veille. Mes tests semblent le confirmer mais il reste à le tester sur un code qui dure 9 heures.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5 Sub LaMacro() 'Ton code 'quand ton code sera fini, la macro attendra jusqu'au lendemain matin 8h Application.OnTime TimeValue("08:00:00"), "LaMacro" End sub
Tu peux faire ça ?
Bonne soirée
Merci bcp pour ta réponse
je vais essayer tout ca, je t'en dis des nouvelles
voila ce que je veux faire:
c'est récupérer tous les jours ouvrés du mois des données internet, du 8 heures du matin a 17 heures du soir. Je sais que ca se fait, puisque je l'ai vu dans le monde professionnel, pendant un stage que j'ai fait. On appellait ca des "batch"
Maisc'est un processus assez intensif.
Donc il faut que le PC se repose entre temps.
Non, personne ne peux et ne dois toucher au PC. Il reste constamment allumé.Si quelqu'un peut démarrer le micro avant huit heures, tu peux placer le nom du fichier dans Démarrage : Sous Windows -> Bouton démarrer -> Programmes -> Démarrage
On n'a pas encore inventé des PC qui s'allument tout seuls, mais on peut peut etre les mettre en veille.
Si tu règle la veille de windows à 1mn, l'écran se mettra en veille sans problème.
Si le PC doit s'arrêter, là je n'ai pas de solution pour le redémarrer.
Par contre, Ontime ne solicite pas l'UC et si l'UC n'est pas actif, seul le ventilo de transfo tournera. Par contre, la macro "paraît" s'exécuter à l'heure convenue.
C'est ce que j'ai testé et c'est ce que j'évoque dans mon poste précédent.
Peux-tu faire un test en grandeur nature, je n'ai pas de macro qui tourne assez longtemps pour le faire et je ne peux pas utiliser Wait pour simuler l'attente, Wait solicitant l'UC.
Ai-je été clair ce coup-ci ?
Bonne nuit
Partager