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 :

Adaptation code interaction avec mail outlook à partir d'EXCEL


Sujet :

Macros et VBA Excel

  1. #1
    Nouveau Candidat au Club
    Homme Profil pro
    Assistant aux utilisateurs
    Inscrit en
    mars 2020
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 34
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Assistant aux utilisateurs

    Informations forums :
    Inscription : mars 2020
    Messages : 4
    Points : 1
    Points
    1
    Par défaut Adaptation code interaction avec mail outlook à partir d'EXCEL
    Bonjour,

    J'ai le code suivant qui marche parfaitement à partir d'Outlook pour interagir avec un email ouvert (ajout de destinataire) :

    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
    Sub Test()
    Dim Item As outlook.MailItem
    Dim oInspector As Inspector
    Set oInspector = Application.ActiveInspector
     
    If oInspector Is Nothing Then
        Set Item = Application.ActiveExplorer.Selection.Item(1)
        Item.Display   'Force the po-up
        Set oInspector = Application.ActiveInspector  'Reassign oInpsector and Item again
        Set Item = oInspector.CurrentItem
    Else
       Set Item = oInspector.CurrentItem
       Item.To = "test@mail.com"
    End If
    End Sub
    Je ne vois pas en revanche comment le faire fonctionner à partir d'excel, pour qu'il puisse interragir mon mail ouvert dans Outlook.
    Malgré la création de l'objet Outlook, le debug pointe toujours sur "Dim Item As outlook.MailItem".
    Ai-je une déclaration supplémentaire à faire?

    Merci d'avance

  2. #2
    Expert éminent
    Avatar de MarcelG
    Homme Profil pro
    Développeur informatique
    Inscrit en
    juillet 2009
    Messages
    3 303
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 63
    Localisation : France, Maine et Loire (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Finance

    Informations forums :
    Inscription : juillet 2009
    Messages : 3 303
    Points : 6 825
    Points
    6 825
    Billets dans le blog
    7
    Par défaut
    Bonjour (ou plutôt Bonne Nuit ) addams et bienvenu sur le Forum,

    Tu peux t'inspirer, je pense, du code proposé dans ce modeste billet

    Bien Cordialement.

    Marcel

    Dernier billet:
    Suppression des doublons d'un tableau structuré, gestion d'un array

    Pas de messagerie personnelle pour vos questions, s'il vous plaît. La réponse peut servir aux autres membres. Merci.


  3. #3
    Nouveau Candidat au Club
    Homme Profil pro
    Assistant aux utilisateurs
    Inscrit en
    mars 2020
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 34
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Assistant aux utilisateurs

    Informations forums :
    Inscription : mars 2020
    Messages : 4
    Points : 1
    Points
    1
    Par défaut
    Bonjour MarcelG et merci

    Ta page est très intéressante et m'aidera avec la suite du projet.

    Par contre je ne vois pas comment intéragir entre excel et mon mail ouvert dans Outlook.

    J'ai essayé d'ajouter au code :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    Dim objOL As Object
    Set objOL = CreateObject("Outlook.Application")
    mais ça bloque toujours sur :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Dim Item As Outlook.MailItem
    C'est problablement quelque chose de bête, mais je vous avoue ne pas trouver (faut dire que je démarre aussi et l'adaptation de bout de code ne me réussie pas)

    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
    Sub Test()
    Dim objOL As Object
    Set objOL = CreateObject("Outlook.Application")
     
    Dim Item As Outlook.MailItem
    Dim oInspector As Inspector
    Set oInspector = Application.ActiveInspector
     
    If oInspector Is Nothing Then
        Set Item = Application.ActiveExplorer.Selection.Item(1)
        Item.Display   'Force the po-up
        Set oInspector = Application.ActiveInspector  'Reassign oInpsector and Item again
        Set Item = oInspector.CurrentItem
    Else
       Set Item = oInspector.CurrentItem
       Item.To = "test@mail.com"
    End If
    End Sub

  4. #4
    Expert éminent

    Homme Profil pro
    Curieux
    Inscrit en
    juillet 2012
    Messages
    4 958
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Curieux
    Secteur : Arts - Culture

    Informations forums :
    Inscription : juillet 2012
    Messages : 4 958
    Points : 9 645
    Points
    9 645
    Billets dans le blog
    5
    Par défaut
    Bonjour,

    il faut travailler avec l'application Outlook matérialisée par l'objet objOL, au lieu de "Application" (qui dans Excel signifie "l'application Excel")
    et ne pas nommer les objets du modèle objet Outlook, mais sur des objets "objets"

    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
    Sub Test()
    Dim objOL As Object
    Dim Item As Object
    Dim oInspector As Object
    Set objOL = CreateObject("Outlook.Application")
    Set oInspector = objOL.ActiveInspector
        If oInspector Is Nothing Then
            Set Item = objOL.ActiveExplorer.Selection.Item(1)
            Item.Display   'Force the po-up
            Set oInspector = objOL.ActiveInspector  'Reassign oInpsector and Item again
            Set Item = oInspector.CurrentItem
        Else
           Set Item = oInspector.CurrentItem
           Item.To = "test@mail.com"
        End If
    End Sub

  5. #5
    Nouveau Candidat au Club
    Homme Profil pro
    Assistant aux utilisateurs
    Inscrit en
    mars 2020
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 34
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Assistant aux utilisateurs

    Informations forums :
    Inscription : mars 2020
    Messages : 4
    Points : 1
    Points
    1
    Par défaut
    ça marche!

    Merci Joe.

    je comprends mieux l'interaction entre les deux programmes

    ça pourrait également marcher à l'inverse ?

    L'exemple donné, lance la macro à partir d'Excel. Mais le plus pratique pour moi serait de le faire à l'inverse, càd , déclencher directement à partir de l'email outlook, l'userform dans excel et de rapatrier les emails dans le champs destinataire.

Discussions similaires

  1. [XL-2007] Envoyer un mail avec outlook à partir d'excel avec des tableaux dans le corps du mail
    Par BarneyYagami dans le forum Macros et VBA Excel
    Réponses: 5
    Dernier message: 15/11/2014, 17h48
  2. Code pour Filtrage mails Outlook
    Par clickandgo dans le forum VBA Access
    Réponses: 20
    Dernier message: 09/05/2013, 19h45
  3. [XL-2003] Bug sur Envoi de mail Outlook à partir d'une macro
    Par graphikris dans le forum Macros et VBA Excel
    Réponses: 30
    Dernier message: 28/03/2013, 19h51
  4. Réponses: 3
    Dernier message: 17/02/2011, 12h08
  5. Envoi de mail Outlook à partir d'Excel
    Par Daejung dans le forum VBA Outlook
    Réponses: 8
    Dernier message: 20/12/2008, 00h37

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