Manipulation d'une pièce jointe outlook en VBA
SPT1
-
yg_be Messages postés 24281 Date d'inscription Statut Contributeur Dernière intervention -
yg_be Messages postés 24281 Date d'inscription Statut Contributeur Dernière intervention -
Bonjour,
A réception d'un message, je souhaite collecter l'image qui est en pièce jointe, et produire un nouveau message avec cette image dans son corps HTML et en pièce jointe.
J'arrive à :
- identifier le message attendu dans outlook,
- identifier si une pièce jointe est présente,
- Préparer et envoyer un message avec un corps HTML
- Mettre une signature outlook
Mais je n'arrive pas à associer la pièce jointe, au mieux j'ai un trombone mais sans document.
Pouvez-vous m'aider ?
A réception d'un message, je souhaite collecter l'image qui est en pièce jointe, et produire un nouveau message avec cette image dans son corps HTML et en pièce jointe.
J'arrive à :
- identifier le message attendu dans outlook,
- identifier si une pièce jointe est présente,
- Préparer et envoyer un message avec un corps HTML
- Mettre une signature outlook
Mais je n'arrive pas à associer la pièce jointe, au mieux j'ai un trombone mais sans document.
Pouvez-vous m'aider ?
Configuration: Windows / Firefox 76.0
A voir également:
- Manipulation d'une pièce jointe outlook en VBA
- Pièce d'identité - Accueil - Services publics
- 1 pièce jointe - Guide
- Synchroniser agenda google et outlook - Guide
- Supprimer une adresse mail outlook - Guide
- Publipostage outlook avec pièce jointe pdf - Forum Word
2 réponses
yg_be
Messages postés
24281
Date d'inscription
Statut
Contributeur
Dernière intervention
Ambassadeur
1 585
bonjour, tu ne nous montres pas ce que tu fais avec la pièce jointe reçue, ni comment tu essaies de la joindre à l'envoi.
Voici le contenu du code
Private Sub Application_NewMailEx(ByVal EntryIDCollection As String)
'Variables
Dim arrID() As String
Dim i, j As Integer
Dim ns_outlook As outlook.NameSpace
Dim item_outlook As MailItem
Dim itm As outlook.MailItem
Dim expéditeur As String
Dim objet_email As String
Dim outlook As Object
Dim outlookMail As Object
Dim Mesattachements As outlook.Attachments
Dim Piecejointe As outlook.Attachments
'En cas d'erreur
On Error Resume Next
Set ns_outlook = Application.Session
'Séparer le matricule de l'objet Outlook
arrID = Split(EntryIDCollection, ",")
For i = 0 To UBound(arrID)
Set item_outlook = ns_outlook.GetItemFromID(arrID(i))
If item_outlook.Class = olMail Then
Set itm = item_outlook
expediteur = itm.SenderName
objet_email = itm.Subject
Set Mesattachements = itm.Attachments
If Mesattachements.Count > 0 And Right(UCase(Mesattachements(1).FileName), 4) = ".PNG" Then
'La pièce jointe est une image PNG
If expediteur = "XXXXX" And objet_email = "TEST" Then
Set Piecejointe = itm.Attachments(1)
Set outlook = CreateObject("Outlook.Application")
Set outlookMail = outlook.CreateItem(0)
stringbody = "<B><SPAN STYLE='font-family: Segoe UI; font-size:21'>Suivi Quotidien</SPAN></B><br>"
stringbody = stringbody & "<SPAN STYLE='font-family: Segoe UI; font-size:12'>Veuillez trouver ci-après le document actualisé.</SPAN><br><br>"
stringbody = stringbody & "<SPAN STYLE='font-family: Segoe UI; font-size:12'>Cordialement" & " </SPAN>"
'stringbody = stringbody & "<IMG src""cid:
With outlookMail
.Display
.To = "ZZZZZZZZZ"
.Subject = "SUJET DU MESSAGE"
.HTMLBody = stringbody & .HTMLBody
'.Attachments = piecejointe
.Display
.Send
End With
End If
End If
End If
Next
Set ns_outlook = Nothing
Set item_outlook = Nothing
Set itm = Nothing
Set Piecejointe = Nothing
End Sub
merci d'utiliser les balises de code quand tu partages du code: https://codes-sources.commentcamarche.net/faq/11288-les-balises-de-code
as-tu ajouté
où essaies-tu d'insérer la pièce jointe dans le mail envoyé? je pense que cela se fait en utilisant Add, comme expliqué ici: https://docs.microsoft.com/fr-ch/office/vba/api/outlook.attachments.add
il me semble probable qu'il faille sauver le fichier sur disque avant de l'attacher à un autre mail.
as-tu ajouté
option expliciten début de module?
où essaies-tu d'insérer la pièce jointe dans le mail envoyé? je pense que cela se fait en utilisant Add, comme expliqué ici: https://docs.microsoft.com/fr-ch/office/vba/api/outlook.attachments.add
il me semble probable qu'il faille sauver le fichier sur disque avant de l'attacher à un autre mail.