Joindre un fichier et coller une image dans un mail en vba
Résolu
BCDLM
Messages postés
12
Date d'inscription
Statut
Membre
Dernière intervention
-
cs_Le Pivert Messages postés 7904 Date d'inscription Statut Contributeur Dernière intervention -
cs_Le Pivert Messages postés 7904 Date d'inscription Statut Contributeur Dernière intervention -
A voir également:
- Joindre un fichier et coller une image dans un mail en vba
- Comment ouvrir un fichier epub ? - Guide
- Comment réduire la taille d'un fichier - Guide
- Fichier bin - Guide
- Fichier rar - Guide
- Ouvrir un fichier .dat - Guide
6 réponses
Bonjour,
Voici un exemple d'envoie avec 2 pièces jointes:
Image et classeur.
A adapter:
Voici un exemple d'envoie avec 2 pièces jointes:
Image et classeur.
A adapter:
'Après avoir ajouté la référence "Microsoft CDO for Windows 2000 Library" dans l'éditeur VBA Outils- Références Sub mail_en_direct() Const cdoBasic = 1 Dim admail As String, i As Integer Dim messmail As String, secours As String Dim expediteur As String Dim Fichier As Variant Dim chemin As Variant Fichier = Application.GetOpenFilename("Fichiers Image (*.jpg), *.jpg") chemin = Application.GetOpenFilename("Classeurs Excel (*.xls), *.xls") expediteur = InputBox("Adresse mail de l'Expéditeur", "ADRESSE ELECTRONIQUE", "monadresse@mail.fr") admail = InputBox("Adresse mail du destinataire", "DESTINATAIRE", "adressedest@mail.fr") messmail = "Bonjour," With CreateObject("CDO.Message") If Err Then secours = MsgBox("Problème de CDO non installé sur le serveur") Exit Sub Else .From = expediteur .To = admail 'destinataire '.Bcc = "" .Subject = "Bonjour" .TextBody = messmail .Configuration.Fields.Item("http://schemas.microsoft.com/cdo/configuration/smtpauthenticate") = cdoBasic .Configuration.Fields.Item("http://schemas.microsoft.com/cdo/configuration/sendusername") = expediteur .Configuration.Fields.Item("http://schemas.microsoft.com/cdo/configuration/sendpassword") = "ton passeport windows live mail" .Configuration.Fields.Item("http://schemas.microsoft.com/cdo/configuration/sendusing") = 2 .Configuration.Fields.Item("http://schemas.microsoft.com/cdo/configuration/smtpserver") = "smtp.free.fr" 'attention mettre votre adresse messagerie .Configuration.Fields.Item("http://schemas.microsoft.com/cdo/configuration/smtpserverport") = 25 .Configuration.Fields.Update .AddAttachment Fichier 'chemin image jointe .AddAttachment chemin 'chemin classeur joint .Send If Err Then MsgBox "Le message n'a pas pu être expédié.Fermez et réessayez." End If On Error GoTo 0 End With MsgBox "Message envoyé avec pièces jointes" End Sub
Voir cette ligne et corriger l'adresse messagerie
.Configuration.Fields.Item("http://schemas.microsoft.com/cdo/configuration/smtpserver") = "smtp.free.fr" 'attention mettre votre adresse messagerie
Allez dans votre messagerie:
Comptes
Propriétés
Serveur
Courrier sortant(SMTP)
Je suis avec Windows Live Mail
Pour les entreprises, je ne sais pas!
.Configuration.Fields.Item("http://schemas.microsoft.com/cdo/configuration/smtpserver") = "smtp.free.fr" 'attention mettre votre adresse messagerie
Allez dans votre messagerie:
Comptes
Propriétés
Serveur
Courrier sortant(SMTP)
Je suis avec Windows Live Mail
Pour les entreprises, je ne sais pas!
Avec ton code, essaie ceci:
Sub envoimail() Dim envoyerA As String, envoyerCc As String, Subject As String ' Indiquer ici l'adresse mail à laquelle il faut envoyer le message : envoyerA = "xxxx@xxx.xx" ' Indiquer ici le sujet de l'e-mail : Subject = "Test" Dim s As Object Dim docMail As Object Dim body As Object Dim stream As Object Dim att As Object Dim Fichier As Variant Dim chemin As Variant Set s = CreateObject("Notes.NotesSession") Set Db = s.CurrentDatabase s.ConvertMIME = False Fichier = Application.GetOpenFilename("Fichiers Image (*.jpg), *.jpg") chemin = Application.GetOpenFilename("Classeurs Excel (*.xlsx), *.xlsx") expediteur = InputBox("Adresse 'création du mail Set docMail = Db.CreateDocument With docMail .Form = "Memo" .SendTo = envoyerA .Subject = Subject .From = s.COMMONUSERNAME End With Set stream = s.CreateStream Set body = docMail.CreateMIMEEntity Call stream.writeText("Bonjour,<br /><br /> Blablabla") Call body.AddAttachment Fichier Call body.AddAttachment chemin Call body.SetContentFromText(stream, "text/html;charset=iso-8859-1", ENC_IDENTITY_8BIT) Call docMail.SEND(False) Set docMail = Nothing Set body = Nothing Set stream = Nothing End Sub
J'ai trouvé cette doc, avec fichiers joints, il suffit de l'adapter:
https://www.vbafin.com/Lotus-Notes-VBA-code.php
https://www.vbafin.com/Lotus-Notes-VBA-code.php
Merci bien pour la doc, ça a été très utile !
Voici le code actuel :
Dim envoyerA As String, envoyerCc As String, Subject As String
' Indiquer ici l'adresse mail à laquelle il faut envoyer le message :
envoyerA = "xxxx@xxx.xx"
' Indiquer ici le sujet de l'e-mail :
Subject = "Test"
Dim s As Object
Dim docMail As Object
Dim body As Object
Dim stream As Object
Dim att As Object
Set s = CreateObject("Notes.NotesSession")
Set Db = s.CurrentDatabase
s.ConvertMIME = False
'création du mail
Set docMail = Db.CreateDocument
With docMail
.Form = "Memo"
.SendTo = envoyerA
.Subject = Subject
.From = s.COMMONUSERNAME
End With
Set stream = s.CreateStream
Set body = docMail.CreateMIMEEntity
Call stream.writeText("Bonjour,<br /><br /> Blablabla")
Call body.SetContentFromText(stream, "text/html;charset=iso-8859-1", ENC_IDENTITY_8BIT)
Set AttachMe = docMail.CreateRichTextItem("C:\Desktop\monfichier.xlsx")
AttachMe.EmbedObject 1454, "", (""C:\Desktop\monfichier.xlsx"") ', "Attachment"
Call docMail.SEND(False)
Set docMail = Nothing
Set body = Nothing
Set stream = Nothing
Voici le code actuel :
Dim envoyerA As String, envoyerCc As String, Subject As String
' Indiquer ici l'adresse mail à laquelle il faut envoyer le message :
envoyerA = "xxxx@xxx.xx"
' Indiquer ici le sujet de l'e-mail :
Subject = "Test"
Dim s As Object
Dim docMail As Object
Dim body As Object
Dim stream As Object
Dim att As Object
Set s = CreateObject("Notes.NotesSession")
Set Db = s.CurrentDatabase
s.ConvertMIME = False
'création du mail
Set docMail = Db.CreateDocument
With docMail
.Form = "Memo"
.SendTo = envoyerA
.Subject = Subject
.From = s.COMMONUSERNAME
End With
Set stream = s.CreateStream
Set body = docMail.CreateMIMEEntity
Call stream.writeText("Bonjour,<br /><br /> Blablabla")
Call body.SetContentFromText(stream, "text/html;charset=iso-8859-1", ENC_IDENTITY_8BIT)
Set AttachMe = docMail.CreateRichTextItem("C:\Desktop\monfichier.xlsx")
AttachMe.EmbedObject 1454, "", (""C:\Desktop\monfichier.xlsx"") ', "Attachment"
Call docMail.SEND(False)
Set docMail = Nothing
Set body = Nothing
Set stream = Nothing
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
Bonjour,
Dès que j'utilise ces codes, ils me mettent une erreur au niveau de "Set docMail = Db.CreateDocument " !
(erreur d'execution 91)
Est ce que quelqu'un sait comment résoudre ce problème ?
Merci
Dès que j'utilise ces codes, ils me mettent une erreur au niveau de "Set docMail = Db.CreateDocument " !
(erreur d'execution 91)
Est ce que quelqu'un sait comment résoudre ce problème ?
Merci
As-tu lu ceci:
https://www.vbafin.com/Lotus-Notes-VBA-code.php
https://www.vbafin.com/Lotus-Notes-VBA-code.php
Merci pour votre réponse.
La macro bug sur le .Send. J'imagine que c'est à cause du serveur de messagerie que je n'arrive pas à trouver dans mon entreprise... Comment puis-je le trouver ?
De plus j'ai essayé d'adapter votre code au mien mais il ne marche pas non plus. Sauriez-vous pourquoi?
Dim envoyerA As String, envoyerCc As String, Subject As String
' Indiquer ici l'adresse mail à laquelle il faut envoyer le message :
envoyerA = "xxxx@xxx.xx"
' Indiquer ici le sujet de l'e-mail :
Subject = "Test"
Dim s As Object
Dim docMail As Object
Dim body As Object
Dim stream As Object
Dim att As Object
Set s = CreateObject("Notes.NotesSession")
Set Db = s.CurrentDatabase
s.ConvertMIME = False
'création du mail
Set docMail = Db.CreateDocument
With docMail
.Form = "Memo"
.SendTo = envoyerA
.Subject = Subject
.From = s.COMMONUSERNAME
End With
Set stream = s.CreateStream
Set body = docMail.CreateMIMEEntity
Call stream.writeText("Bonjour,<br /><br /> Blablabla")
Call body.AddAttachment("J:\maphoto.jpg") 'bug ici
Call body.AddAttachment("J:\mon fichier.xlsx")
Call body.SetContentFromText(stream, "text/html;charset=iso-8859-1", ENC_IDENTITY_8BIT)
Call docMail.SEND(False)
Set docMail = Nothing
Set body = Nothing
Set stream = Nothing