Bonjour à Tous,

Je suis débutante en Execel, et en VBA bien sur aussi .

J'espère que vous serez indulgents avec moi.

J’ai besoin d’envoyer par mail un classeur Excel (le classeur actif), et ou la feuille active via lotus note version 6.

J’ai fait une recherche sur le net et j’ai pratiquement trouvé mon bonheur, si si ca arrive.

J'ai trouvé cette macro ( elle suit juste derrière) permettant d'envoyer des mails via Lotus Notes à partir d'Excel.

Si quelqu’un peut m’aider à adapter et modifier ce code afin que je puisse :

  • Remplir le sujet du mail,
  • Mettre plusieurs destinataires du mail,
  • Remplir un petit baratin dans le corps du message avec les éventuels RC (retour à la ligne),
  • Remplir l’émetteur du mail



D'avance merci pour votre aide.


Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
Sub SendNotesMail() 
'Set up the objects required for Automation into lotus notes 
Dim Maildb As Object 'The mail database 
Dim UserName As String 'The current users notes name 
Dim MailDbName As String 'THe current users notes mail database name 
Dim MailDoc As Object 'The mail document itself 
Dim AttachME As Object 'The attachment richtextfile object 
Dim Session As Object 'The notes session 
Dim EmbedObj As Object 'The embedded object (Attachment) 
'Start a session to notes 
Set Session = CreateObject("Notes.NotesSession") 
'Get the sessions username and then calculate the mail file name 
'You may or may not need this as for MailDBname with some systems you 
'can pass an empty string 
UserName = Session.UserName 
MailDbName = Left$(UserName, 1) & Right$(UserName, (Len(UserName) - InStr(1, UserName, " "))) & ".nsf" 
'Open the mail database in notes 
Set Maildb = Session.GETDATABASE("", MailDbName) 
If Maildb.IsOpen = True Then 
'Already open for mail 
Else 
Maildb.OPENMAIL 
End If 
'Set up the new mail document 
Set MailDoc = Maildb.CREATEDOCUMENT 
MailDoc.Form = "Memo" 
MailDoc.Sendto = Worksheets(3).Cells(2, 2).Value 
MailDoc.CopyTo = "dgiry@technip.com" 
MailDoc.Subject = Worksheets(3).Cells(1, 2).Value 
MailDoc.Body = Worksheets(3).Cells(3, 2).Value 
MailDoc.SaveMessageOnSend = SaveIt 
'Set up the embedded object and attachment and attach it 
Attachment1 = Worksheets(3).Cells(4, 2).Value 
Attachment2 = Worksheets(3).Cells(5, 2).Value 
Attachment3 = Worksheets(3).Cells(6, 2).Value 
If Attachment1 <> "" And Attachment2 <> "" And Attachment3 <> "" Then 
Set AttachME = MailDoc.CREATERICHTEXTITEM("Attachment1") 
Set EmbedObj = AttachME.EMBEDOBJECT(1454, "", Attachment1, "Attachment1") 
MailDoc.CREATERICHTEXTITEM (Attachment1) 
Set AttachME = MailDoc.CREATERICHTEXTITEM("Attachment2") 
Set EmbedObj = AttachME.EMBEDOBJECT(1454, "", Attachment2, "Attachment2") 
MailDoc.CREATERICHTEXTITEM (Attachment2) 
Set AttachME = MailDoc.CREATERICHTEXTITEM("Attachment3") 
Set EmbedObj = AttachME.EMBEDOBJECT(1454, "", Attachment3, "Attachment3") 
MailDoc.CREATERICHTEXTITEM (Attachment3) 
End If 
 
'Send the document 
MailDoc.PostedDate = Now() 'Gets the mail to appear in the sent items folder 
MailDoc.Send 0, Recipient 
 
'Clean Up 
Set Maildb = Nothing 
Set MailDoc = Nothing 
Set AttachME = Nothing 
Set Session = Nothing 
Set EmbedObj = Nothing 
 
End Sub
J’ai fait une autre recherche et j’ai trouvé cela également pour les destinataires multiples.

Avec un tableau (Array), ca passe : Code :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
MailDoc.Sendto = Array(Worksheets(3).Cells(2, 2).Value, Worksheets(3).Cells(3, 2).Value)
ou si la cellule contient les adresses séparées par des virgules : Code :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
MailDoc.Sendto = Split(Worksheets(3).Cells(2, 2).Value, ",")

Je rappele, que je débute en Excel, et en macro et VBA je préfère même pas en parler .

Merci encore d’avance pour votre aide.


Débutante-Excel