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 :

Exécution automatique VBA


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Août 2006
    Messages
    23
    Détails du profil
    Informations personnelles :
    Âge : 62
    Localisation : Belgique

    Informations forums :
    Inscription : Août 2006
    Messages : 23
    Par défaut Exécution automatique VBA
    Bonjour,

    JE cherche à ce que le VBA s'exécute automatiquement à l'ouverture de mon fichier Excel. Après avoir fait quelques recherches sur le net j'ai vu qu'il fallait faire une Sub Workbook_Open ou Auto_open.

    J'ai beau essayer de le faire, cela ne fonctionne pas.

    Quand j'ouvre mon classeur et que je fais ALT+F11 pour aller dans l'éditeur VB, j'ai dans mon projet plusieurs lignes:

    Feuil1
    Feuil2
    Feuil3
    ThisWorkbook

    J'ai mis le code dans ThisWorkbook et, quand j'ouvre mon classeur, j'active les macros.

    Pouvez-vous m'aider pour que cela fonctionne.


    D'autre part, je souhaiterais que ce classeur soit mis à jour toutes les minutes. J'ai créé une macro que j'appelle REFRESH et j'ai encodé ce code dans l'éditeur VB:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    Sub Auto_Open()
     While Range("D1") = 1
     maj
     Wend
    End Sub
    Sub maj()
     Refresh
    End Sub
    Cela fonctionne bien si ce n'est que je dois interrompre le VBA par ESC. Pouvez-vous me dire comment ajouter quelque chose qui fera que le sub MAJ() ne s'exécutera que toutes les minutes.

    Merci d'avance pour l'aide.

    PS: Ce sont mes premières lignes de VBA
    PS: Le Range("D1) = 1 c'est pour pouvoir arrêter la boucle

  2. #2
    Membre éprouvé
    Homme Profil pro
    Auditeur informatique
    Inscrit en
    Octobre 2011
    Messages
    46
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 69
    Localisation : France, Seine Maritime (Haute Normandie)

    Informations professionnelles :
    Activité : Auditeur informatique
    Secteur : Industrie

    Informations forums :
    Inscription : Octobre 2011
    Messages : 46
    Par défaut
    Bonjour,

    pour que cela fonctionne il faut :
    1. soit mettre votre code dans ThisWorkbook, mais la fonction doit s'appeler Workbook_Open,
    2. soit dans un module et à ce moment-là vous pouvez y insérer votre code


    Pour lancer une macro toutes les minutes il faut :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    Sub Auto_Open()
       Application.OnTime now + timeval("00:01:00"), "maj"
    End Sub
     
    Sub maj()
      Refresh
       Application.OnTime now + timeval("00:01:00"), maj
    End Sub
    Voilà pour démarrer.

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Août 2006
    Messages
    23
    Détails du profil
    Informations personnelles :
    Âge : 62
    Localisation : Belgique

    Informations forums :
    Inscription : Août 2006
    Messages : 23
    Par défaut
    Bonjour,

    Merci pour la réponse.

    JE viens d'essayer et j'obtiens le mesage d'erreur suivant:

    Erreur de compilation: Sub ou Function non définie

    et le mot timeval apparaît en surbrillance.

    Merci de me préciser ce que je dois corriger.

    Stephan

  4. #4
    Membre confirmé
    Homme Profil pro
    Inscrit en
    Janvier 2012
    Messages
    105
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Janvier 2012
    Messages : 105
    Par défaut
    Bonjour Dream3w, enernaej,


    Pour ton erreur, c'est une erreur de syntaxe, ce n'est pas timeval mais timevalue

    la syntaxe exacte est:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Application.OnTime Now + TimeValue("00:00:15"), "my_Procedure"
    tu aurais réussi à trouver cela via l'aide de Miscrosoft Visual Basic en recherchant "ontime" (petit réflexe à prendre quand on est bloqué)

  5. #5
    Membre averti
    Profil pro
    Inscrit en
    Août 2006
    Messages
    23
    Détails du profil
    Informations personnelles :
    Âge : 62
    Localisation : Belgique

    Informations forums :
    Inscription : Août 2006
    Messages : 23
    Par défaut
    Bonjour,

    Merci pour la réponse. Cela fonctionne. Le seul problème (et il est majeur), c'est que ce tableur doit se rafraîchir tout au long de la journée et pas qu'une seule fois.

    Le principe est qu'au fur et à mesure de la journée, des démonstrations seront réalisées. Afin d'annoncer l'heure de la prochaine démonstration, j'ai un fichier Excel qui sera lié dans un fichier PPT.


    Je joins le fichier réalisé.

    C'est urgent, c'est pour un salon qui débute dans 3 jours.

    Merci d'avance pour votre aide.

    Stephan
    Fichiers attachés Fichiers attachés

Discussions similaires

  1. [Toutes versions] VBA - exécuter automatiquement une macro
    Par NZL0401 dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 21/04/2015, 19h50
  2. Vbs qui exécute du vba automatiquement
    Par djdjo59 dans le forum VBScript
    Réponses: 0
    Dernier message: 05/10/2011, 13h45
  3. Exécution automatique d'une formule Excel à partir de VBA
    Par jumiara dans le forum Macros et VBA Excel
    Réponses: 6
    Dernier message: 02/11/2010, 12h13
  4. Réponses: 6
    Dernier message: 22/10/2009, 15h42
  5. exécution automatique d'une macro
    Par faayy dans le forum Access
    Réponses: 12
    Dernier message: 15/06/2005, 14h52

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