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

VBA Outlook Discussion :

Lancer macro automatiquement


Sujet :

VBA Outlook

  1. #1
    Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Mars 2017
    Messages
    67
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Corrèze (Limousin)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Finance

    Informations forums :
    Inscription : Mars 2017
    Messages : 67
    Points : 55
    Points
    55
    Par défaut Lancer macro automatiquement
    Bonjour,

    Je cherche à lancer une macro automatiquement toutes les minutes.
    Auriez-vous une solution ?

    Merci par avance

  2. #2
    Membre habitué
    Homme Profil pro
    Chargé d'affaire
    Inscrit en
    Septembre 2019
    Messages
    151
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Seine et Marne (Île de France)

    Informations professionnelles :
    Activité : Chargé d'affaire

    Informations forums :
    Inscription : Septembre 2019
    Messages : 151
    Points : 185
    Points
    185
    Par défaut
    Bonsoir,
    Le planificateur des tâches de Windows est parfait pour çà.

  3. #3
    Expert éminent
    Avatar de Oliv-
    Homme Profil pro
    solution provider
    Inscrit en
    Mars 2006
    Messages
    4 087
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : solution provider

    Informations forums :
    Inscription : Mars 2006
    Messages : 4 087
    Points : 7 168
    Points
    7 168
    Billets dans le blog
    20
    Par défaut
    Salut,
    J'ai fait un article sur ce sujet
    https://www.developpez.net/forums/bl...rrence-donnee/

  4. #4
    Membre habitué
    Homme Profil pro
    Chargé d'affaire
    Inscrit en
    Septembre 2019
    Messages
    151
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Seine et Marne (Île de France)

    Informations professionnelles :
    Activité : Chargé d'affaire

    Informations forums :
    Inscription : Septembre 2019
    Messages : 151
    Points : 185
    Points
    185
    Par défaut
    Bonjour Olivier,
    j'arrive à utiliser le gestionnaire des tâches avec un VBS sous Excel,
    mais Outlook c'est très compliqué pour moi,

    Hier en faisant des recherches, je n'ai pas trouvé comment lancer une macro Outlook,
    Ton post tombe à Pic , par contre je n'arrive pas l'ouvrir

  5. #5
    Expert éminent
    Avatar de Oliv-
    Homme Profil pro
    solution provider
    Inscrit en
    Mars 2006
    Messages
    4 087
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : solution provider

    Informations forums :
    Inscription : Mars 2006
    Messages : 4 087
    Points : 7 168
    Points
    7 168
    Billets dans le blog
    20
    Par défaut
    Il était resté en statut Ebauche, tu peux essayer de nouveau.

  6. #6
    Membre habitué
    Homme Profil pro
    Chargé d'affaire
    Inscrit en
    Septembre 2019
    Messages
    151
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Seine et Marne (Île de France)

    Informations professionnelles :
    Activité : Chargé d'affaire

    Informations forums :
    Inscription : Septembre 2019
    Messages : 151
    Points : 185
    Points
    185
    Par défaut
    Bonjour et bonne année 2021 à tous,

    Je comprends pourquoi je n'avais rien trouvé,
    Merci Olivier,

  7. #7
    Rédacteur

    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Août 2013
    Messages
    947
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Oise (Picardie)

    Informations professionnelles :
    Activité : Administrateur de base de données
    Secteur : Finance

    Informations forums :
    Inscription : Août 2013
    Messages : 947
    Points : 4 058
    Points
    4 058
    Par défaut
    Bonjour.
    Pour ma part j'utilise une autre façon de faire pour exécuter une macro toutes les minutes (mais qui nécessite que Outlook soit ouvert).
    Avec l'aide des API SetTimer et KillTimer.
    En trois phases :
    1) Initialiser un "timer" en indiquant la fréquence de répétition (toutes les x secondes) et la macro à lancer = InitialiseTraitementDiffere;
    2) Ecrire la macro désirée = TraitementDiffere ;
    3) Prévoir éventuellement l'arrêt du "timer", s'il y a besoin de l'arrêter à un moment donné = TermineTraitementDiffere. Sinon le traitement est lancé à la fréquence indiquée tant que Outlook est ouvert.

    Dans l'exemple ci-dessous la macro différée ne fait qu'afficher l'heure dans le débuggeur, mais vous adapterez à votre besoin.
    Ce code doit être impérativement écrit dans un Module classique (pas un module de class ni ThisOutlookSession)

    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
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    Option Explicit
     
    Private Declare PtrSafe Function SetTimer Lib "user32.dll" (ByVal hwnd As LongPtr, ByVal nIDEvent As LongPtr, ByVal uElapse As Long, ByVal lpTimerFunc As LongPtr) As LongPtr
    Private Declare PtrSafe Function KillTimer Lib "user32.dll" (ByVal hwnd As LongPtr, ByVal nIDEvent As LongPtr) As Long
     
    ' Mémorise le pointeur obtenu avec SetTimer:
    Dim TimerPerso As LongPtr
    Dim DureeTimerSeconde As Long
     
    '------------------------------------------------------------------------------------------------------
    Public Sub InitialiseTraitementDiffere()
    '------------------------------------------------------------------------------------------------------
    ' Initialise la fréquence du traitement différé:
    '------------------------------------------------------------------------------------------------------
    DureeTimerSeconde = 60 ' une minute
    TimerPerso = SetTimer(0, 0, 1000 * DureeTimerSeconde, AddressOf TraitementDiffere)
    End Sub
     
    '------------------------------------------------------------------------------------------------
    Private Sub TraitementDiffere()
    '------------------------------------------------------------------------------------------------
    ' Placez ici le traitement différé:
    '------------------------------------------------------------------------------------------------------
    Debug.Print Format(Time, "hh:mm:ss")
     
    End Sub
     
    '------------------------------------------------------------------------------------------------------
    Public Sub TermineTraitementDiffere()
    '------------------------------------------------------------------------------------------------------
    ' Supprime la gestion du traitement différé:
    '------------------------------------------------------------------------------------------------------
    Call KillTimer(0, TimerPerso)
    End Sub
    '------------------------------------------------------------------------------------------------------
    L'initialisation peut être faite (suivant le but recherché) :
    Soit par un bouton placé dans Outlook
    Soit à l'ouverture d'Outlook en ajoutant ce code dans l'objet ThisOutlookSession :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    '------------------------------------------------------------------------------------------------------
    Private Sub Application_Startup()
    '------------------------------------------------------------------------------------------------------
    InitialiseTraitementDiffere
    End Sub
    Cordialement.

Discussions similaires

  1. Réponses: 3
    Dernier message: 04/08/2017, 15h29
  2. [AC-2007] Lancer en automatique des macros à chaque changement de valeur
    Par MAO2000 dans le forum Access
    Réponses: 2
    Dernier message: 15/02/2015, 12h08
  3. Comment lancer une macro automatique lors d'ouverture de fichier EXcel
    Par yassinefeki dans le forum Macros et VBA Excel
    Réponses: 6
    Dernier message: 16/05/2010, 23h48
  4. Réponses: 7
    Dernier message: 14/05/2008, 11h41
  5. Réponses: 1
    Dernier message: 26/08/2007, 20h07

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