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 :

Automatiser l'émission d'un rappel sonore 5 minutes après la réception d'un message


Sujet :

VBA Outlook

  1. #1
    Membre à l'essai
    Homme Profil pro
    Technico commercial
    Inscrit en
    Juin 2014
    Messages
    20
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Technico commercial

    Informations forums :
    Inscription : Juin 2014
    Messages : 20
    Points : 11
    Points
    11
    Par défaut Automatiser l'émission d'un rappel sonore 5 minutes après la réception d'un message
    Bonjour,

    N'ayant pas trouvé de post sur ce sujet, je m'en remets à vous.

    Je souhaite automatiser l'émission d'un rappel sonore pour les messages qui arrivent dans ma boîte de réception (Outlook 2007).

    Ces messages arrivent dans l'état "non lu". Je souhaite dans un premier temps que le premier rappel sonore s'effectue 5 minutes après la réception d'un message si il n'a pas été lu et dans un deuxième temps que le rappel s'effectue toutes les 5 minutes tant que le message n'est pas lu. Par conséquent il faut que ce rappel s'arrête de lui même lorsque le message est enfin lu.

    Ceci permet de ne pas "laisser passer à la trappe" un message qui nécessite une réponse ou un acquittement urgent.

    Merci d'avance pour votre aide.

    N'hésitez pas à poser vos questions si vous avez besoin d'informations complémentaires.

    Aëthan

  2. #2
    Membre à l'essai
    Homme Profil pro
    Technico commercial
    Inscrit en
    Juin 2014
    Messages
    20
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Technico commercial

    Informations forums :
    Inscription : Juin 2014
    Messages : 20
    Points : 11
    Points
    11
    Par défaut
    Bonjour à tous,

    Après quelques essais, je suis parvenu à déclencher l'automatisation de création d'une tâche pour tous les messages entrants, mais je n'ai encore qu'une partie de la solution.

    Les tâches restent "ouvertes" malgré le traitement des messages et je suis par conséquent contraint de les marquer manuellement comme terminées.

    Je souhaite ajouter au code ci-dessous les conditions qui permettront de marquer automatiquement ces tâches comme terminées si un ou des messages sont traités.

    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
    Sub reminder(Item As Outlook.MailItem)
    Dim objTI As Outlook.TaskItem
     
    Set objTI = Application.CreateItem(olTaskItem)
     
        With objTI
     
            If Item.Subject = "Program for Tomorrow" Or Item.Subject = "Delivery Status Notification (Failure)" Or Item.Subject = "[GermanTote] ATG Racecalendar" Or Item.Subject = "Contrôle Montant Hubs" Or Item.Subject = "Returned mail: see transcript for details" Or Item.Subject Like "FRA HOLLA" Or Item.Subject Like "FRA DENMARK" Or Item.SenderEmailAddress = "anoevo@pmc-sa.com" Or Item.SenderName = "Administrateur ANO-EVO" Or Item.UnRead = False Then
     
            Exit Sub
     
            Else
     
                .Subject = Item.Subject
                .ReminderSet = True
                .ReminderSoundFile = "C:\Users\CPM\Music\Unreadmails.wav"
                .ReminderPlaySound = True
                .ReminderTime = Now + TimeSerial(0, 5, 0)
                .Save
     
            End If
     
        End With
     
    End Sub
    Merci pour votre aide.

    Aëthan

  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
    Bonsoir
    Il faudrait utiliser plutôt MailItem.MarkAsTask
    Ce qui fait que lorsque tu marqueras ton mail termine cela va terminer la tâche

  4. #4
    Membre à l'essai
    Homme Profil pro
    Technico commercial
    Inscrit en
    Juin 2014
    Messages
    20
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Technico commercial

    Informations forums :
    Inscription : Juin 2014
    Messages : 20
    Points : 11
    Points
    11
    Par défaut
    Bonjour Oliv-,

    Merci pour l'info, c'est parfait.

    Pour ceux intéressés, voici le code :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    Sub reminder(Item As Outlook.MailItem)
     
                Item.MarkAsTask (olMarkToday)
                Item.ReminderSet = True
                Item.ReminderSoundFile = "C:\Users\CPM\Music\Unreadmails.wav"
                Item.ReminderPlaySound = True
                Item.ReminderTime = Now + TimeSerial(0, 5, 0)
                Item.Save
     
    End Sub
    Aëthan

  5. #5
    Membre à l'essai
    Homme Profil pro
    Technico commercial
    Inscrit en
    Juin 2014
    Messages
    20
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Technico commercial

    Informations forums :
    Inscription : Juin 2014
    Messages : 20
    Points : 11
    Points
    11
    Par défaut
    Oliv-,

    Saurais-tu si il est possible de "marquer le message comme terminé" dès que le message est ouvert ?

    Merci d'avance.

    Aëthan.

  6. #6
    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
    Avec une macro, voici un Base
    http://www.developpez.net/forums/d15...l/#post8164193

    il faut changer : : mailitem.FlagStatus =olFlagMarked

  7. #7
    Membre à l'essai
    Homme Profil pro
    Technico commercial
    Inscrit en
    Juin 2014
    Messages
    20
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Technico commercial

    Informations forums :
    Inscription : Juin 2014
    Messages : 20
    Points : 11
    Points
    11
    Par défaut
    Oliv-

    Merci infiniment. J'ai adapté le BASE à mon besoin et tout fonctionne comme je le souhaitais.

    Tu es mon sauveur

    Merci encore !

    Et pour ceux que ça intéresse, dans 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
     
    Public WithEvents AM As MailItem
     
    Private Sub Application_ItemLoad(ByVal Item As Object)
     
    ' Vérifie que le formulaire est bien celui d'un email
     
        If Item.Class = olMail Then
     
            Set AM = Item
     
        Else
     
            Exit Sub
     
        End If
     
    End Sub
     
     
     
    Private Sub AM_Open(Cancel As Boolean)
     
    AM.FlagStatus = olFlagComplete
    AM.Save
     
    End Sub
    Aëthan

  8. #8
    Membre à l'essai
    Homme Profil pro
    Technico commercial
    Inscrit en
    Juin 2014
    Messages
    20
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Technico commercial

    Informations forums :
    Inscription : Juin 2014
    Messages : 20
    Points : 11
    Points
    11
    Par défaut
    Arrgghh !!!

    Encore un point !

    Lorsque je souhaite créer un nouveau mail ou transférer ou répondre à un mail existant, j'obtiens le message d'erreur ci-dessous dans l'image.

    Nom : Sans titre.jpg
Affichages : 324
Taille : 77,7 Ko

    Comment puis-je différencier un mail reçu nécessitant d'être marqué comme terminé une fois ouvert, d'un nouveau mail ?

    Merci d'avance.

    Aëthan

  9. #9
    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,
    Pour ma part j'aurais laissé manuel, le fait de marquer le mail terminé, parce que ce n'est pas parce qu'on ouvre le mail qu'on l'a traité !

    Mais si tu persistes, il faut effectivement, tester plusieurs points :
    • si le mail a une tache associée :.IsMarkedAsTask
    • si il y a un sujet
    • si il est envoyé:.Sent


    tu peux aussi vérifier s'il le sujet répond à tes critères
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
     If Item.Subject = "Program for Tomorrow" Or Item.Subject = "Delivery Status Notification (Failure)" Or Item.Subject = "[GermanTote] ATG Racecalendar" Or Item.Subject = "Contrôle Montant Hubs" Or Item.Subject = "Returned mail: see transcript for details" Or Item.Subject Like "FRA HOLLA" Or Item.Subject Like "FRA DENMARK" Or Item.SenderEmailAddress = "anoevo@pmc-sa.com" Or Item.SenderName = "Administrateur ANO-EVO" Or Item.UnRead = False Then

  10. #10
    Membre à l'essai
    Homme Profil pro
    Technico commercial
    Inscrit en
    Juin 2014
    Messages
    20
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Technico commercial

    Informations forums :
    Inscription : Juin 2014
    Messages : 20
    Points : 11
    Points
    11
    Par défaut
    Oliv-,

    Merci pour tes propositions qui me rapprochent chaque fois un peu plus de LA solution. IsMarkedAsTask est exactement ce qu'il me fallait pour distinguer les mails reçus de ceux que je créé.

    J'ai tenu compte de ton opinion et la partage. Ce n'est pas parce qu'on ouvre un mail qu'il est traité . Nous sommes plusieurs utilisateurs sur la même boîte mail et tout le monde n'aura pas forcément le "bon" réflexe de traiter les mails en temps et en heure. Aussi ai-je opté pour une solution intermédiaire via un message box qui s'ouvre à la fermeture d'un mail reçu et qui demande confirmation du traitement. CF ci-dessous.

    Dans 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
    36
    37
    38
    39
     
    Public WithEvents AM As MailItem
     
     
    Private Sub Application_ItemLoad(ByVal Item As Object)
     
    ' Vérifie que le formulaire est bien celui d'un email
     
        If Item.Class = olMail Then
     
            Set AM = Item
     
        Else
     
            Exit Sub
     
        End If
     
    End Sub
     
    Private Sub AM_Close(Cancel As Boolean)
     
    If AM.IsMarkedAsTask Then
     
        If MsgBox("Le mail peut-il être considéré comme traité et terminé (OUI) ou doit-il rester en cours pour un traitement ultérieur (NON) ?", vbYesNo, "Traitement du mail") = vbYes Then
     
            AM.UnRead = False        
            AM.FlagStatus = olFlagComplete
            AM.Save
     
        Else
     
            AM.Save
     
        End If
     
    End If
     
    End Sub
    Cette fois je pense que la solution est la bonne et définitive. J'update ce fil de discussion en "Résolu".

    Merci pour tout Oliv-

    Aëthan.

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

Discussions similaires

  1. [OL-2010] Emettre un signal sonore à la réception de nouveaux messages
    Par Daejung dans le forum Outlook
    Réponses: 2
    Dernier message: 08/05/2012, 11h50
  2. [DROIT]Refus de mission dans une SSII
    Par The_Nail dans le forum Droit du travail
    Réponses: 32
    Dernier message: 05/06/2010, 10h03
  3. [IMPORTANT] Rappel des règles
    Par Community Management dans le forum C++
    Réponses: 4
    Dernier message: 11/12/2006, 23h11
  4. [IMPORTANT] Rappel des règles
    Par Geronimo dans le forum Outils pour C & C++
    Réponses: 3
    Dernier message: 21/08/2005, 09h05
  5. Acquisition sonore
    Par Rodrigue dans le forum DirectX
    Réponses: 1
    Dernier message: 26/08/2002, 21h21

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