Lancement d'une macro à réception d'un mail

Bonjour,
Je reçois des mails que je range dans un dossier via une règle. J'aimerais dans la suite de cette règle e exécuter une macro qui récupérerait l'émetteur, la date de, l'heure et l'objet pour les enregistrer dans un fichier Excel. mon objectif est de mettre en place une statistique en fin de mois sur les mails reçus.
est ce réalisable et si oui comment faire ?
Merci d'avance pour votre aide
bonne journee

3 réponses

  1. Bonjour,
    une petite idée pour m'aider à démarrer ?
    Bonne journée

    --
    0
    1. Je vais continuer à investiguer seul et vous ferez pas de mon retour
      - comment lancer une macro a réception d'un mail
      - comment dans ce mail récupérer les informations
      Comment lancer excel dans une macro Outlook
      Comment ajouter les informations du message dans le fichier excel

      --
      0
      1. Bonjour,

        J'ai trouvé ce code sur un forum qui, à priori selon les commentaires, fonctionne mais pas chez moi
        Sub test(Mail As MailItem)

        Dim strID As String, olNS As Outlook.NameSpace
        Dim olMail As Outlook.MailItem
        Dim strFileName As String

        Dim strSource As String

        '~~> Excel Variables
        Dim oXLApp As Object, oXLwb As Object, oXLws As Object
        Dim lRow As Long

        MsgBox "Début"

        strID = MyMail.EntryID
        Set olNS = Application.GetNamespace("MAPI")
        Set olMail = olNS.GetItemFromID(strID)

        '~~> Establish an EXCEL application object
        On Error Resume Next
        Set oXLApp = GetObject(, "Excel.Application")

        '~~> If not found then create new instance
        If Err.Number <> 0 Then
        Set oXLApp = CreateObject("Excel.Application")
        End If
        Err.Clear
        On Error GoTo 0

        '~~> Show Excel
        oXLApp.Visible = True

        '~~> Open the relevant file
        strSource = "C:\Suivi des arrivées.xlsx"
        MsgBox strSource
        Set oXLwb = oXLApp.Workbooks.Open(strSource)

        '~~> Set the relevant output sheet. Change as applicable
        Set oXLws = oXLwb.Sheets(1)

        lRow = oXLws.Range("A" & oXLApp.Rows.Count).End(xlUp).Row + 1

        '~~> Write to outlook
        With oXLws
        '
        '~~> Code here to output data from email to Excel File
        '~~> For example
        '
        .Range("A" & lRow).Value = olMail.Subject
        .Range("B" & lRow).Value = olMail.SenderName
        '
        End With

        '~~> Close and Clean up Excel
        oXLwb.Close (True)
        oXLApp.Quit
        Set oXLws = Nothing
        Set oXLwb = Nothing
        Set oXLApp = Nothing

        Set olMail = Nothing
        Set olNS = Nothing

        MsgBox "Fin de traitement"


        En fait, il ne se passe rien.
        J'ai ajouté des MsgBox pour voir par où il passe mais rien.
        La macro est bien activée par une règle (si je mets tout en commentaire en laissant simplement les MsgBox, j'obtiens bien les affichages)
        J'ai ajouté des MsgBox pour voir par où il passe mais rien.
        Une idée ?
        J'ai activé le lien Outlook/Excel dans les références
        J'ai ajouté des MsgBox pour voir par où il passe mais rien.
        0