Joindre un fichier et coller une image dans un mail en vba
Résolu/Fermé
BCDLM
Messages postés
12
Date d'inscription
mardi 2 juillet 2013
Statut
Membre
Dernière intervention
26 août 2015
-
Modifié par pijaku le 20/08/2015 à 16:33
cs_Le Pivert Messages postés 7904 Date d'inscription jeudi 13 septembre 2007 Statut Contributeur Dernière intervention 14 août 2024 - 10 nov. 2015 à 08:34
cs_Le Pivert Messages postés 7904 Date d'inscription jeudi 13 septembre 2007 Statut Contributeur Dernière intervention 14 août 2024 - 10 nov. 2015 à 08:34
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 rar - Guide
- Ouvrir un fichier .bin - Guide
- Yahoo mail - Accueil - Mail
6 réponses
cs_Le Pivert
Messages postés
7904
Date d'inscription
jeudi 13 septembre 2007
Statut
Contributeur
Dernière intervention
14 août 2024
729
20 août 2015 à 16:24
20 août 2015 à 16:24
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
cs_Le Pivert
Messages postés
7904
Date d'inscription
jeudi 13 septembre 2007
Statut
Contributeur
Dernière intervention
14 août 2024
729
20 août 2015 à 18:18
20 août 2015 à 18:18
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!
cs_Le Pivert
Messages postés
7904
Date d'inscription
jeudi 13 septembre 2007
Statut
Contributeur
Dernière intervention
14 août 2024
729
21 août 2015 à 07:57
21 août 2015 à 07:57
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
cs_Le Pivert
Messages postés
7904
Date d'inscription
jeudi 13 septembre 2007
Statut
Contributeur
Dernière intervention
14 août 2024
729
21 août 2015 à 07:58
21 août 2015 à 07:58
Supprime cela, erreur de copier coller
expediteur = InputBox("Adresse
expediteur = InputBox("Adresse
BCDLM
Messages postés
12
Date d'inscription
mardi 2 juillet 2013
Statut
Membre
Dernière intervention
26 août 2015
21 août 2015 à 14:46
21 août 2015 à 14:46
Bonjour,
Merci pour le retour.
Il y avait une erreur syntaxe dût aux parenthèses qu'il manquait. J'ai donc ces deux lignes.
Call body.AddAttachment(Fichier)
Call body.AddAttachment(chemin)
Malheureusement la macro bug sur les deux lignes...
Merci pour le retour.
Il y avait une erreur syntaxe dût aux parenthèses qu'il manquait. J'ai donc ces deux lignes.
Call body.AddAttachment(Fichier)
Call body.AddAttachment(chemin)
Malheureusement la macro bug sur les deux lignes...
cs_Le Pivert
Messages postés
7904
Date d'inscription
jeudi 13 septembre 2007
Statut
Contributeur
Dernière intervention
14 août 2024
729
21 août 2015 à 15:16
21 août 2015 à 15:16
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
BCDLM
Messages postés
12
Date d'inscription
mardi 2 juillet 2013
Statut
Membre
Dernière intervention
26 août 2015
21 août 2015 à 16:37
21 août 2015 à 16:37
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
cs_Le Pivert
Messages postés
7904
Date d'inscription
jeudi 13 septembre 2007
Statut
Contributeur
Dernière intervention
14 août 2024
729
9 nov. 2015 à 11:37
9 nov. 2015 à 11:37
As-tu lu ceci:
https://www.vbafin.com/Lotus-Notes-VBA-code.php
https://www.vbafin.com/Lotus-Notes-VBA-code.php
cs_Le Pivert
Messages postés
7904
Date d'inscription
jeudi 13 septembre 2007
Statut
Contributeur
Dernière intervention
14 août 2024
729
9 nov. 2015 à 14:42
9 nov. 2015 à 14:42
cs_Le Pivert
Messages postés
7904
Date d'inscription
jeudi 13 septembre 2007
Statut
Contributeur
Dernière intervention
14 août 2024
729
9 nov. 2015 à 15:14
9 nov. 2015 à 15:14
Erreur d'execution "91" signifie que l'objet n'est pas connecté/renseigné ... il est donc vide
Cela concerne ces 2 lignes:
Set s = CreateObject("Notes.NotesSession")
Set Db = s.CurrentDatabase
essaie d'ajouter dans les déclarations ceci:
Dim Db As Object
Cela concerne ces 2 lignes:
Set s = CreateObject("Notes.NotesSession")
Set Db = s.CurrentDatabase
essaie d'ajouter dans les déclarations ceci:
Dim Db As Object
xyvyos
>
cs_Le Pivert
Messages postés
7904
Date d'inscription
jeudi 13 septembre 2007
Statut
Contributeur
Dernière intervention
14 août 2024
9 nov. 2015 à 15:29
9 nov. 2015 à 15:29
Je viens de le faire et ça marche toujours pas
20 août 2015 à 17:55
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