Bonjour à tous,
J'aimerai pouvoir exécuter une macro à la réception d'un mail.
J'ai déjà un bout de code qui fonctionne sur la détection du mail à traiter mais par contre je n'arrive pas à sauvegarder le fichier joint.
Pouvez vous m'aider?
Merci par avance
Ci dessous mon code actuel :
Private Sub Application_NewMailEx(ByVal EntryIDCollection As String)
Dim arrID() As String
Dim i As Integer
Dim ms_outlook As Outlook.NameSpace
Dim item_outlook As MailItem
Dim itm As Outlook.MailItem
Dim expediteur As String
Dim object As String
' en cas d'erreur
On Error Resume Next
' définir la session
Set ms_outlook = Application.Session
'séparer le matricule de l'object outlook
arrID = Split(EntryIDCollection, ",")
'boucle sur l'objet outlook
For i = 0 To UBound(arrID)
'identifier l'objet en cours
Set item_outlook = ms_outlook.GetItemFromID(arrID(i))
'vérifier si c'est un mail
If item_outlook.Class = olMail Then
'identifier l'email
Set itm = item_outlook
'identifier l'expéditeur
expediteur = itm.SenderName
objet_email = itm.Subject
'vérifier que l'expediteur est dans la liste
If expediteur = "oroger" Or objet_email = "test" Then
'message
MsgBox ("ça marche")
If Item.Attachments.Count > 0 Then
Dim objAttachments As Outlook.Attachments
Set objAttachments = Item.Attachments
For Each objAttach In objAttachments
objAttach.SaveAsFile "C:\Temp" & objAttach.FileName
Next
Set objAttachments = Nothing
End If
End If
End If
Next
End Sub
J'aimerai pouvoir exécuter une macro à la réception d'un mail.
J'ai déjà un bout de code qui fonctionne sur la détection du mail à traiter mais par contre je n'arrive pas à sauvegarder le fichier joint.
Pouvez vous m'aider?
Merci par avance
Ci dessous mon code actuel :
Private Sub Application_NewMailEx(ByVal EntryIDCollection As String)
Dim arrID() As String
Dim i As Integer
Dim ms_outlook As Outlook.NameSpace
Dim item_outlook As MailItem
Dim itm As Outlook.MailItem
Dim expediteur As String
Dim object As String
' en cas d'erreur
On Error Resume Next
' définir la session
Set ms_outlook = Application.Session
'séparer le matricule de l'object outlook
arrID = Split(EntryIDCollection, ",")
'boucle sur l'objet outlook
For i = 0 To UBound(arrID)
'identifier l'objet en cours
Set item_outlook = ms_outlook.GetItemFromID(arrID(i))
'vérifier si c'est un mail
If item_outlook.Class = olMail Then
'identifier l'email
Set itm = item_outlook
'identifier l'expéditeur
expediteur = itm.SenderName
objet_email = itm.Subject
'vérifier que l'expediteur est dans la liste
If expediteur = "oroger" Or objet_email = "test" Then
'message
MsgBox ("ça marche")
If Item.Attachments.Count > 0 Then
Dim objAttachments As Outlook.Attachments
Set objAttachments = Item.Attachments
For Each objAttach In objAttachments
objAttach.SaveAsFile "C:\Temp" & objAttach.FileName
Next
Set objAttachments = Nothing
End If
End If
End If
Next
End Sub