[VBA/LOTUS]: écrire mail avec fichier attaché + JPEG intégré au corps

: écrire mail avec fichier attaché + JPEG intégré au corps [VBA/LOTUS] - VB/VBA/VBS - Programmation

Marsh Posté le 09-11-2010 à 13:46:39    

Bonjour,
 
Je cherche à créer un mail à partir d'une macro Excel sur Lotus.
Ce mail doit être envoyé en cliquant sur un bouton.
Il doit comporter:
- Un sujet
- Une phrase dans le corps du mail de type: "Bonjour, voici les fichiers du jour"
- un fichier joint
- une image copiée collée de cellules excel d'un fichier, directement dans le corps du mail.
 
voici ce que j'ai fait:
 
Dim today, dateJ, dateJ1 As Date
Dim Notes As Object, db As Object, WorkSpace As Object
 
Dim my_Sheet, my_sheet2 As Worksheet
Set my_Sheet = ActiveWorkbook.Sheets("Macros" )
Set my_sheet2 = ActiveWorkbook.Sheets("verif" )
 
Dim Maildb As Object  
Dim UserName As String  
Dim MailDbName As String  
Dim MailDoc As Object  
Dim AttachME As Object  
Dim Session As Object  
Dim EmbedObj As Object  
Set Session = CreateObject("Notes.NotesSession" )
UserName = Session.UserName
MailDbName = Left$(UserName, 1) & Right$(UserName, (Len(UserName) - InStr(1, UserName, " " ))) & ".nsf"
Set Maildb = Session.GetDataBase("", MailDbName)
If Maildb.IsOpen = True Then
Else
Maildb.OPENMAIL
End If
 
today = Sheets("Macros" ).Range("D1" ).Value
dateJ = Sheets("Macros" ).Range("D6" ).Value
dateJ1 = Sheets("Macros" ).Range("D9" ).Value
dateJJ = Day(dateJ) & Month(dateJ) & Year(dateJ)
 
If Sheets("Macros" ).CheckBox1.Value = True And Sheets("Macros" ).CheckBox4.Value = False Then cc = "Paris"
If Sheets("Macros" ).CheckBox1.Value = True And Sheets("Macros" ).CheckBox4.Value = True Then cc = "Allianz"
If Sheets("Macros" ).CheckBox2.Value = True Then cc = "Asia"
If Sheets("Macros" ).CheckBox3.Value = True Then cc = "NY"
 
 
Set MailDoc = Maildb.CreateDocument
MailDoc.Form = "Memo"
MailDoc.Sendto = "pp@pp.com"
MailDoc.Subject = "sujet"
MailDoc.SaveMessageOnSend = SaveIt
Attachment1 = "F:\chemin"
 
Set AttachME = MailDoc.CreateRichTextItem("Attachment1" )
Set EmbedObj = AttachME.EmbedObject(1454, "", Attachment1, "Attachment1" )
MailDoc.CreateRichTextItem (Attachment1)
 
Set WorkSpace = CreateObject("Notes.NotesUIWorkspace" )
Call WorkSpace.ComposeDocument(, , "Memo" )
 
Set MailDoc = WorkSpace.CurrentDocument
Worksheets("verif" ).Range("P17:Q34" ).CopyPicture
Call MailDoc.GotoField("Body" )
body = "Blah blah blah"
Call MailDoc.Paste
 
MailDoc.PostedDate = Now()  
MailDoc.Send 0, Recipient
 
 
Set Maildb = Nothing
Set MailDoc = Nothing
Set AttachME = Nothing
Set Session = Nothing
Set EmbedObj = Nothing
 
End Sub
 
mais ça ne marche pas, car je pense que ce code crée deux mails différents.
Comment pourrais-je avoir le fichier joint et l'image dans le même mail?
 
Merci beaucoup pour votre aide,
 
Cdt,
Grumilbonsoir

Reply

Marsh Posté le 09-11-2010 à 13:46:39   

Reply

Marsh Posté le 10-11-2010 à 08:53:03    

Hello,
 
je te copie-colle le code que j'utilise, il marche bien, par contre le fichier en attaché apparait tout a la fin du message, je ne sais pas comment le mettre dans le corps du texte par contre :
 
 
Code :
 
Const EMBED_ATTACHMENT As Integer = 1454
 
...
 
 
If Len(Attach1) > 0 Then
     If Len(Dir(Attach1)) > 0 Then
       Set bodyAtt = MailDoc.CreateRichTextItem("Attachment" )
       bodyAtt.EmbedObject EMBED_ATTACHMENT, "", Attach1, "Attachment"
     End If
End If
 
 
Attach1 est le nom du fichier

Reply

Marsh Posté le 10-11-2010 à 10:29:14    

Merci pour ta réponse.
 
Mais en fait, je n'ai pas l'impression que sur ton code, il y'ait à la fois:
- un fichier attaché
- + une image copiée collée d'un fichier excel sur le corps.
 
Est-ce que tu saurais comment faire?

Reply

Marsh Posté le 10-11-2010 à 10:51:09    

non effectivement , il n'y a que le fichier attaché. Pour l'image je ne sais pas comment faire désolé

Reply

Marsh Posté le 10-11-2010 à 11:01:10    

Il doit falloir passer le corps du message en HTML et integré une balise image, amha


---------------
Soyez malin, louez entre voisins !
Reply

Marsh Posté le 10-11-2010 à 11:06:04    

J'ai esssayé ça:
 
Set Notes = CreateObject("Notes.NotesSession" )
 
UserName = Notes.UserName
MailDbName = Left$(UserName, 1) & Right$(UserName, (Len(UserName) - InStr(1, UserName, " " ))) & ".nsf"
 
Set db = Notes.GetDataBase(vbNullString, MailDbName)
 
Set WorkSpace = CreateObject("Notes.NotesUIWorkspace" )
Call WorkSpace.ComposeDocument(, , "Memo" )
 
Set UIdoc = WorkSpace.CurrentDocument
Call UIdoc.FieldSetText("SendTo", "pp@pp.com" ) 'Recipient
Call UIdoc.FieldSetText("Subject", "Pic Time" )
 
Worksheets("verif" ).Range("P17:Q30" ).CopyPicture
Call UIdoc.GotoField("Body" )
Call UIdoc.Paste
 
 
Attachment1 = "F:\......xls"
 
 
If Len(Attachment1) > 0 Then
     if Len(Dir(Attachment1)) > 0 Then
       UIdoc.Import Attachment1, "F:\.....xls"
     End If
End If
 
 
Mais ça ne fonctionne pas, j'ai le message d'erreur Lotus suivant: "import/export not configured'
 
 
Quelqu'un a une idée?

Reply

Marsh Posté le 10-11-2010 à 11:09:29    

(en fait, le copier-coller dans le mail fonctionne, mais pas l'attachement du fichiers xls)

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed