IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Macros et VBA Excel Discussion :

lancement automatique d'une macro


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éprouvé
    Inscrit en
    Novembre 2006
    Messages
    1 073
    Détails du profil
    Informations forums :
    Inscription : Novembre 2006
    Messages : 1 073
    Par défaut lancement automatique d'une macro
    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

  2. #2
    Inactif  
    Avatar de ouskel'n'or
    Profil pro
    Inscrit en
    Février 2005
    Messages
    12 464
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 12 464
    Par défaut
    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
    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
    Il faut prévoir une macro qui te permette d'arrêter LaMacro.
    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

  3. #3
    Membre éprouvé
    Inscrit en
    Novembre 2006
    Messages
    1 073
    Détails du profil
    Informations forums :
    Inscription : Novembre 2006
    Messages : 1 073
    Par défaut
    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

    Il faut prévoir une macro qui te permette d'arrêter LaMacro.
    Comment tu fais?

  4. #4
    Inactif  
    Avatar de ouskel'n'or
    Profil pro
    Inscrit en
    Février 2005
    Messages
    12 464
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 12 464
    Par défaut
    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
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Sub Depart()
        Application.OnTime TimeValue("08:00:00"), "LaMacro"
    End sub
    Mais regarde l'aide en ligne à OnTime, tout est expliqué.
    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.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Private Sub Workbook_Open()
        Depart
    End Sub
    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

    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 :

    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
    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.
    Tu peux faire ça ?
    Bonne soirée

  5. #5
    Membre éprouvé
    Inscrit en
    Novembre 2006
    Messages
    1 073
    Détails du profil
    Informations forums :
    Inscription : Novembre 2006
    Messages : 1 073
    Par défaut
    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.

    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
    Non, personne ne peux et ne dois toucher au PC. Il reste constamment allumé.
    On n'a pas encore inventé des PC qui s'allument tout seuls, mais on peut peut etre les mettre en veille.

  6. #6
    Inactif  
    Avatar de ouskel'n'or
    Profil pro
    Inscrit en
    Février 2005
    Messages
    12 464
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 12 464
    Par défaut
    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

Discussions similaires

  1. [AC-2003] Lancement automatique d'une macro
    Par Monkey_D.Luffy dans le forum VBA Access
    Réponses: 7
    Dernier message: 12/04/2011, 19h18
  2. lancement automatique d'une macro
    Par moimemessssssssss dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 11/02/2011, 22h31
  3. lancement automatique d'une macro à partir d'une extraction de BDD
    Par SCHOLLERF dans le forum Macros et VBA Excel
    Réponses: 6
    Dernier message: 09/10/2007, 07h45
  4. Réponses: 1
    Dernier message: 04/05/2007, 11h59
  5. [VBA-E] Lancement automatique d'une macro (débutante)
    Par pom_poir dans le forum Macros et VBA Excel
    Réponses: 8
    Dernier message: 28/11/2005, 17h57

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo