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

denisw95 Messages postés 53 Statut Membre -  
denisw95 Messages postés 53 Statut Membre -
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. denisw95 Messages postés 53 Statut Membre
     
    Bonjour,
    une petite idée pour m'aider à démarrer ?
    Bonne journée

    --
    0
  2. denisw95 Messages postés 53 Statut Membre
     
    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
  3. denisw95 Messages postés 53 Statut Membre
     
    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