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 :

Comment éxecuter des macros automatiquement une fois par heure ? [XL-2013]


Sujet :

Macros et VBA Excel

  1. #1
    Membre du Club
    Homme Profil pro
    Inscrit en
    Janvier 2014
    Messages
    93
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Janvier 2014
    Messages : 93
    Points : 52
    Points
    52
    Par défaut Comment éxecuter des macros automatiquement une fois par heure ?
    Salut !

    J'ai créé des macros qui actualisent mes données et mon classeur si je clic sur un bouton

    Comment faire pour que excel clique sur ce bouton une fois par heure ?

    Merci, je nage, et ce même après des heures de googlelisation (j'utilise peut être pas les bons termes?)

  2. #2
    Membre éprouvé Avatar de defluc
    Homme Profil pro
    Architecte
    Inscrit en
    Mai 2002
    Messages
    1 383
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 74
    Localisation : Belgique

    Informations professionnelles :
    Activité : Architecte

    Informations forums :
    Inscription : Mai 2002
    Messages : 1 383
    Points : 1 199
    Points
    1 199
    Par défaut
    Bonjour,

    après des heures de googlelisation
    T'as essayé une recherche avec les mots clé "vba excel tache de fond" ?

    Bonne continuation

  3. #3
    Invité
    Invité(e)
    Par défaut bonsoir,
    si tu implémente une macro qui appelle ton sub et qui referme Excel après exécution, tu pourras l'appelé via le gestionnaire de tache toute les heure.

  4. #4
    Membre du Club
    Homme Profil pro
    Inscrit en
    Janvier 2014
    Messages
    93
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Janvier 2014
    Messages : 93
    Points : 52
    Points
    52
    Par défaut
    Merci pour vos réponses !

    Il faut que je précise que je garderai ma feuille excel toujours ouverte sur un écran pour voir les données, et que j'essayerai par la suite de mettre un son d'alerte

    Est ce que cela change quelque chose dans la méthode que vous me proposez c'est à dire utiliser la tâche de fond? Je n'ai pas recherché dans ce sens. J'ai vu la fonction "Application.OnTime" mais je pense pas que ça soit bon.

  5. #5
    Membre émérite
    Inscrit en
    Octobre 2010
    Messages
    1 401
    Détails du profil
    Informations forums :
    Inscription : Octobre 2010
    Messages : 1 401
    Points : 2 684
    Points
    2 684
    Par défaut
    Bonjour Dan.exe

    Voici un exemple de OnTime qui permet de fixer l'heure du premier appel de la fonction OnTime par

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Range("ProchainAppel") = CDate(DateValue("2014/01/29") & " " & TimeValue("21:00:00"))
    et le délai entre chaque appel étant déterminé par

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Range("DureeDuDelai") = "00:00:10"


    Cordialement

    Docmarti
    Fichiers attachés Fichiers attachés
    Cordialement

    Docmarti.

  6. #6
    Membre du Club
    Homme Profil pro
    Inscrit en
    Janvier 2014
    Messages
    93
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Janvier 2014
    Messages : 93
    Points : 52
    Points
    52
    Par défaut
    Merci énormément pour ce code !

    Ca me fait avancer d'un pas de géant !

    Je vais chercher cet après midi ou demain comment l'incorporer sur ma feuille, et comment faire pour qu'il execute mes macros.

    Mille merci

    Ca y est c'est dans mon fichier excel !

    J'explique comment pour d'autres débutants comme moi qui tomberont sur cette discussion: il faut nommer 3 cases (clic droit/nom) avec DernierAppel/DureeDuDelai/ProchainAppel puis modifier la macro en mettant Sheets("NOM DE VOTRE FEUILLE"). derrière tous les "range". Ne pas oublier de modifier le format des cellules pour voir les secondes. Pour les deux cases vides dernier appel et délai, c'est du texte.

    Maintenant quoi mettre et où pour exécuter soit mon bouton soit mes macros telle est la question? Surement quelque part dans la macro procédure ?

    Merci !

  7. #7
    Invité
    Invité(e)
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    Public Start As Boolean
     
    Public Sub gotTIme()
    If Start = True Then
    'Traitement
     
    ActiveWorkbook.Application.OnTime Now + TimeValue("00:00:30"), "gotTIme"
    End If
    End Sub
    Private Sub CommandButton1_Click()
    If Start = False Then
        Start = True
          gotTIme
    Else
        Start = False
    End If
    End Sub

  8. #8
    Membre du Club
    Homme Profil pro
    Inscrit en
    Janvier 2014
    Messages
    93
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Janvier 2014
    Messages : 93
    Points : 52
    Points
    52
    Par défaut
    Merci à toi !

    Mais où placer ce code?

  9. #9
    Invité
    Invité(e)
    Par défaut
    tu place ça dans un module
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    Public Start As Boolean
    Public Sub gotTIme()
    If Start = True Then
    'Traitement
     'la prochaine exécution dans une heure.
    ActiveWorkbook.Application.OnTime Now + TimeValue("01:00:00"), "gotTIme"
    End If
    End Sub
    si tu veux gérer le start et le stop place un bouton sur ta feuille excel.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    Private Sub CommandButton1_Click()
    If Start = False Then
        Start = True
    CommandButton1.caption="Stop"
          gotTIme
    Else
        Start = False
    CommandButton1.caption="Start"
    End If
    End Sub
    si tu veux que ça démarre à l'ouverture du fichier:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    Private Sub Workbook_Open()
     Start = True
     gotTIme
    End Sub

  10. #10
    Membre émérite
    Inscrit en
    Octobre 2010
    Messages
    1 401
    Détails du profil
    Informations forums :
    Inscription : Octobre 2010
    Messages : 1 401
    Points : 2 684
    Points
    2 684
    Par défaut
    Maintenant quoi mettre et où pour exécuter soit mon bouton soit mes macros telle est la question? Surement quelque part dans la macro procédure ?

    Merci !
    Bien sûr quelque part dans Procedure, tu mets


    Docmarti
    Cordialement

    Docmarti.

  11. #11
    Membre du Club
    Homme Profil pro
    Inscrit en
    Janvier 2014
    Messages
    93
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Janvier 2014
    Messages : 93
    Points : 52
    Points
    52
    Par défaut


    Merci Rdurupt ! Et merci à tous !

    Je commence à voir le bout du tunnel !

    J'ai réussi à créer une actualisation automatique en mettant le nom d'une macro après 'traitement

    Comme j'ai un premier bouton manuel j'ai changé le 1 de button1 par 2 sur les trois...en plus ça me dit si l'actu auto est enclenchée ou pas, super

    Magnifique, simple et efficace

    Encore mille merci, je pense que mon affaire est résolue !


+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. exécuter une macro 1 seule fois par semaine ?
    Par deby23 dans le forum VBA Access
    Réponses: 9
    Dernier message: 20/12/2012, 11h22
  2. Réponses: 2
    Dernier message: 19/11/2010, 09h16
  3. Réponses: 1
    Dernier message: 29/10/2009, 17h28
  4. Réponses: 9
    Dernier message: 24/06/2008, 10h31
  5. comment forcer l'exécution des macros pour une seule base ?
    Par tristan_sauvage dans le forum Access
    Réponses: 4
    Dernier message: 21/08/2006, 11h59

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