Bonjour,
Je cherche à lancer une macro automatiquement toutes les minutes.
Auriez-vous une solution ?
Merci par avance
Bonjour,
Je cherche à lancer une macro automatiquement toutes les minutes.
Auriez-vous une solution ?
Merci par avance
Bonsoir,
Le planificateur des tâches de Windows est parfait pour çà.
Salut,
J'ai fait un article sur ce sujet
https://www.developpez.net/forums/bl...rrence-donnee/
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
Il était resté en statut Ebauche, tu peux essayer de nouveau.
Bonjour et bonne année 2021 à tous,
Je comprends pourquoi je n'avais rien trouvé,
Merci Olivier,
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)
L'initialisation peut être faite (suivant le but recherché) :
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 '------------------------------------------------------------------------------------------------------
Soit par un bouton placé dans Outlook
Soit à l'ouverture d'Outlook en ajoutant ce code dans l'objet ThisOutlookSession :
Cordialement.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5 '------------------------------------------------------------------------------------------------------ Private Sub Application_Startup() '------------------------------------------------------------------------------------------------------ InitialiseTraitementDiffere End Sub
Mes tutoriels : Mémento sur la programmation pour Excel; La programmation en mode graphique; Le problème du voyageur de commerce; Crypter vos données dans Excel; Les fonctions SQL pour gérer les données; Créer des fonctions pour simplifier la vie des utilisateurs; Comprendre la méthode de factorisation du Crible Quadratique; Programmation de menus personnalisés pour Excel; Manipuler les données des bases Access depuis Excel; Transférer des fichiers volumineux avec Outlook; Algorithme ECM de factorisation par les courbes elliptiques; Un classeur Excel multi-utilisateur; Compresser/décompresser des fichiers au format ZIP; Fonctions pour gérer les Tableaux Structurés; Fonctions pour générer des courriels depuis Excel.
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