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
Je ne suis pas un expert en la matière, mais voilà ce que j'ai personnellement déjà fait :
1) Utilisation d'un fichier .bat avec l'opération d'ouverture de mon classeur Excel à l'intérieur (écriture sous l'éditeur de texte et enregistrement en .bat)
2) Création d'un tâche planifiée pour lancer le .bat tous les jours à l'heure voulue
Contenu de mon .bat :
Code : Sélectionner tout - Visualiser dans une fenêtre à part "C:\Program Files\Microsoft Office\Office10\EXCEL.EXE" /e/fichierbat "G:\oslb\macro.xls"
Attention le chemin de ton Excel peut être différent.
"Ne soyez rien, devenez sans cesse"
merci pour les rép
Pendant que la macro tourne, je préfère que l'écran ne soit pas en veille.Si tu règle la veille de windows à 1mn, l'écran se mettra en veille sans problème.
Mais pendant que le reste du temps tourne, j'aimerais que l'écran soit en veille.
La actuellement, je ne peux pas, car je travaille. Ce WE je pourrais.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 ?
Merci!!
Si tu la mets dans le répertoire démarrer, je pense que ta solution ne va lancer qu'une seule fois la macro.
Et pas en boucle, tous les 8heures du matin.
Comment crées tu un fichier .bat?1) Utilisation d'un fichier .bat avec l'opération d'ouverture de mon classeur Excel à l'intérieur (écriture sous l'éditeur de texte et enregistrement en .bat)
Comment planifies tu une taches?2) Création d'un tâche planifiée pour lancer le .bat tous les jours à l'heure voulue
C'est ce que je t'ai écris : bloc note, t'adaptes la ligne que je t'ai donné, et t'enregistre avec l'extension .bat au lieu de l'extension .txt
Code : Sélectionner tout - Visualiser dans une fenêtre à part Comment crées tu un fichier .bat?
C'est pas plus compliqué que ça...
"Ne soyez rien, devenez sans cesse"
ok tres bien merci
si mon fichier excel s'appelle monfichier.xls
et ma macro est Mamacro
alors
le code a mettre dans le batch est:
oslb etant bien sur le chemin d'acces de ton fichier
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 "C:\Program Files\Microsoft Office\Office10\EXCEL.EXE" /e/fichierbat "G:\oslb\Monfichier.xls"
qui doit changer sur le mien
La solution de la tâche planifiée est bonne, pas de problème... mais je pensais que tu ne souhaitais pas arrêter le programme en fin d'exécution de la macro.
Là, sans tester, il me semble que le fichier devra être fermé en fin de macro, non ?
C'est une question
Petite erreur de ma part, t'as pigé mais après la partie /e/ c'est pas le nom de ton fichierbat que tu dois mettre mais le nom de la fonction macro que tu veux lancer à l'intérieur de ton fichier excel.
Le nom du fichier bat, c'est bien sûr dans la définition de ta tâche planifiée que tu dois l'indiquer.
"Ne soyez rien, devenez sans cesse"
Vous avez un bloqueur de publicités installé.
Le Club Developpez.com n'affiche que des publicités IT, discrètes et non intrusives.
Afin que nous puissions continuer à vous fournir gratuitement du contenu de qualité, merci de nous soutenir en désactivant votre bloqueur de publicités sur Developpez.com.
Partager