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 :

Macro sur reception d'un mail dans une autre BAL que celle par défaut


Sujet :

VBA Outlook

  1. #1
    Membre à l'essai
    Profil pro
    Étudiant
    Inscrit en
    Mai 2012
    Messages
    14
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2012
    Messages : 14
    Points : 12
    Points
    12
    Par défaut Macro sur reception d'un mail dans une autre BAL que celle par défaut
    Bonjour,


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Private Sub Application_NewMail()
        Macro
    End Sub
    Avec ce code ma macro se lance à la réception d'un mail dans mon dossier par défaut, comment faire pour changer ça et faire en sorte que ça soit à la réception d'un mail dans une autre boite aux lettres svp ?

    Merci

  2. #2
    Membre habitué
    Homme Profil pro
    Back Office Marchés
    Inscrit en
    Mars 2011
    Messages
    65
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Back Office Marchés
    Secteur : Finance

    Informations forums :
    Inscription : Mars 2011
    Messages : 65
    Points : 139
    Points
    139
    Par défaut Pas le bon évènement
    Salut,

    L'évènement Application_NewMail ne s'applique qu'à ton Inbox. Il existe néanmoins des solutions en passant par l'évènement Items_ItemAdd

    Dans ThisOutlookSession copie le code suivant

    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
    Dim WithEvents m_colInbox As Outlook.Items
     
    Private Sub Application_Startup ()
     
    Dim objNS As Outlook.NameSpace
    Dim objNomBoite As Recipient
    Dim objDossier As Outlook.MAPIFolder
     
    Set objNS = objSession.GetNamespace("MAPI")
        Set objNomBoite = objNS.CreateRecipient("Le nom de la boîte")
            Set objDossier = Application.Session.GetSharedDefaultFolder(objNomBoite, olFolderInbox)
     
        Set m_colInbox = objDossier.Items
     
    Set objNS = Nothing
    Set objNomBoite = Nothing
    Set objDossier=Nothing
    End Sub
     
    Private Sub m_colInbox_ItemAdd (ByVal Item as Object)
     
    Dim objMsg as Outlook.MailItem
    On Error Resume Next
        If Item.Class = olMail Then
            Set objMsg = Item
            Call Macro 'Nom de ta macro
        End If
    Set objMsg = Nothing
    End Sub
    Cependant si tu reçois plus de 16 mails en même temps tu risques d'en rater car l'évènement risque de ne pas se déclencher.

    Cordialement,

    Guillaume.

  3. #3
    Membre à l'essai
    Profil pro
    Étudiant
    Inscrit en
    Mai 2012
    Messages
    14
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2012
    Messages : 14
    Points : 12
    Points
    12
    Par défaut
    Bonjour merci beaucoup pour ta réponse, je venais tout juste de tomber sur une solution proposant l'utilisation de "MAPIFolder.Items.ItemAdd" mais sans avoir la moindre idée de comment l'utiliser.

    Je n'ai pas tout suivi dans ta macro en particulier dans la première partie, ce que tu lances à l'ouverture d'outlook:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     Set objNomBoite = objNS.CreateRecipient("Le nom de la boîte")
            Set objDossier = Application.Session.GetSharedDefaultFolder(objNomBoite, olFolderInbox)
     
        Set m_colInbox = objDossier.Items
    Je découvre .CreateRecipient qui à priori sert à créer un objet "recipient" qui "Représente un utilisateur ou une ressource Outlook. Il s’agit en règle générale du destinataire d’un message électronique ou mobile."
    Alors je ne comprends pas l'utilisation , tu pourrai m'éclairer stp ?

    Encore merci

    EDIT : JE crois que j'ai trouvé ma réponse en me renseignant sur la fonction 1 ligne plus bas : http://msdn.microsoft.com/en-us/libr.../ff869575.aspx

  4. #4
    Membre habitué
    Homme Profil pro
    Back Office Marchés
    Inscrit en
    Mars 2011
    Messages
    65
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Back Office Marchés
    Secteur : Finance

    Informations forums :
    Inscription : Mars 2011
    Messages : 65
    Points : 139
    Points
    139
    Par défaut
    Cela permet de créer un objet qui représente un autre compte de messagerie.

    Exemple tu bosses chez Microsoft à la comptabilité. Tu as paramétré plusieurs comptes de messagerie dans ton client Outlook : julien@microsoft.com et compta@microsoft.com (l'adresse du service). Ton inbox par défaut est celle à ton nom. Avec .CreateRecipient("Compta@microsoft.com") tu indiques la boîte mail dans laquelle tu vas travailler. Désormais, les répertoires "boîte de réception", "éléments envoyés" etc. pointent vers ceux ce "compta" et non pas ceux de "Julien"

    Guillaume

  5. #5
    Membre à l'essai
    Profil pro
    Étudiant
    Inscrit en
    Mai 2012
    Messages
    14
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2012
    Messages : 14
    Points : 12
    Points
    12
    Par défaut
    Ok, merci encore.

    Par contre je rencontre des problèmes lors de l'execution de la seconde macro,
    la macro que j'appelle dans celle la boucle sur tous les mails de mon dossier et enregistre leurs pièces jointes, quand je test en m'envoyant un nouveau mail ça m'enregistre un nombre infini de pièces jointes ... Pourquoi ma macro n'est elle pas appelé qu'une seule fois ?

    D'avance merci

  6. #6
    Nouveau Candidat au Club
    Femme Profil pro
    Inscrit en
    Septembre 2013
    Messages
    1
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations professionnelles :
    Secteur : Santé

    Informations forums :
    Inscription : Septembre 2013
    Messages : 1
    Points : 1
    Points
    1
    Par défaut ouvir mail dans une autre BAL
    Bonjour,
    novice en programmation j'ai besoin de votre aide.
    J'ai récupéré le code ci-dessous qui va ouvir le mail dans la boite par défaut (en double cliquant sur la cellule excel contenant l'objet du message).
    Maintenant je souhaiterai aller chercher le mail dans une autre BAL qui n'est pas celle par défaut.

    Comment faire?

    En vous remerciant.


    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
    Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
         Dim OlApp As Object, NS As Object, Dossier As Object
         Dim OlExp As Object
         Dim i As Object
     
         Cancel = True
         Set OlApp = CreateObject("OutLook.Application")
         Set fs = CreateObject("Scripting.FileSystemObject")
         Set OlExp = OlApp.ActiveExplorer
         Set NS = OlApp.GetNamespace("MAPI")
     
         Set Dossier = NS.Folders(1).Folders("Boîte de réception")
         For Each i In Dossier.Items
             If i.Subject = Target.Value Then
             i.Display
             End If
        Next i
    End Sub

  7. #7
    Membre habitué
    Homme Profil pro
    Back Office Marchés
    Inscrit en
    Mars 2011
    Messages
    65
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Back Office Marchés
    Secteur : Finance

    Informations forums :
    Inscription : Mars 2011
    Messages : 65
    Points : 139
    Points
    139
    Par défaut
    La réponse à ta question se trouve dans ma réponse à JulienNvr. Il faut utiliser un objet Recipient

    Guillaume

Discussions similaires

  1. Utiliser une autre librairie que celle par défaut
    Par danathane dans le forum Programmation et administration système
    Réponses: 2
    Dernier message: 28/09/2010, 10h56
  2. Réponses: 7
    Dernier message: 10/06/2009, 23h29
  3. Réponses: 2
    Dernier message: 28/04/2009, 20h02
  4. Réponses: 5
    Dernier message: 27/11/2008, 18h34
  5. Ecrire dans une autre fenetre que celle de l'application
    Par aurelien59 dans le forum Windows
    Réponses: 3
    Dernier message: 15/05/2007, 12h50

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