Re : envoi mail avec Excel VBA vers Lotus 6.5
Bonjour, tout le monde, je me suis re penché sur le programme avant de vous demander un coups de main.
Je vous joins un extrait de mon programme d'envoi mail sous lotus.
Mon programme fonctionne très bien sous Lotus notes 4.5, mais pas sur la version 6.5, j'ai lu que cela pouvait venir de " " au niveau de Attachment, j'ai essayé de faire les réctifications, mais cela ne fonctionne pas.
Mon programme est utilisé aussi sur quelques machines utilisant Citrix avec Excel 97, hormis l'enregistrement en version 97, et tester; avoir conçu sous Excel 2000 necessite de tout re vérifier pour que cela fonctionne avec 97?
A vous lire, Alexandre
Dim Recipient(3) As Variant
Dim Attachment(2) As Variant
'!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!ENVOI MAIL EMETTEUR!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
Public Function LOTUSNOTES3(subject As String, Attachments As String, BodyText As String, SaveIt As Boolean) As Boolean
'Set up the objects required for Automation into lotus notes
On Error GoTo TraiteErreur
Recipient(0) = adrsmail
Recipient(1) = "xxxx.xxxx.xx@eigsi.fr"
'destinataire combobox origine BE destinataire
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)
Dim passwd As String
Dim i As Variant
Dim message1 As String
Dim message2 As String
Dim message3 As String
Dim message4 As String
Dim message5 As String
Dim message6 As String
'données tirées de la feuille FRBE, bien faire aperçu avt impression pour visualiser dans le mail
message1 = Sheets("FRBE").Range("N1") 'affaire concernée
message2 = Sheets("FRBE").Range("S3") 'Numero de FRBE
message3 = Sheets("FRBE").Range("G8") 'Emetteur
message4 = Sheets("FRBE").Range("B35") 'Fichiers joints
message5 = Sheets("FRBE").Range("B43") 'Images jointes
message6 = Sheets("FRBE").Range("R6") 'Citadis
'Demande le password Lotus(Dans le cas ou la session necessite un passwd)
'passwd = InputBox("Entrer votre password Lotus:", "Password")
'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 = Recipient
mailDoc.subject = subject & vbTab & vbTab & message1 & vbTab & message2 & vbTab & message6
'Texte contenu dans le mail
mailDoc.ReturnReceipt = "1"
Set rtitem = mailDoc.CreateRichTextItem("Body")
With rtitem
.AppendText "Bonjour,"
.AddNewLine 2
.AppendText "Une Nouvelle Fiche FRBE est en cours émise par: " & message3
.AddNewLine 2
.AppendText "PROJET:" & message1
.AddNewLine 2
.AppendText "FICHE N°:" & message2
.AddNewLine 2
.AppendText "Vous trouverez les liens des documents annexés à cette fiche par l'emetteur"
.AddNewLine 2
.AppendText " " & message4
.AddNewLine 2
.AppendText " " & message5
.AddNewLine 2
.AppendText "Cet e-mail a été généré par un processus automatique."
.AddNewLine 2
.AppendText "Cordialement"
.AddNewLine 1
.AppendText "Administrateur FRBE"
.AddNewLine 1
.AppendText "FICHE DE REMONTEES BUREAUX D'ETUDES"
.AddNewLine 3
End With
'Protection copie
Call mailDoc.REPLACEITEMVALUE("$KeepPrivate", "1")
mailDoc.SAVEMESSAGEONSEND = SaveIt
'Set up the embedded object and attachment and attach it
'DIVERS
Attachment(0) = "\\isis.dom2.ad.sys\Messagerie\AA_Messagerie\manuel_aide_excel.doc" 'txtFromEmailAddress
Attachment(1) = "\\isis.dom2.ad.sys\Messagerie\AA_Messagerie\Nouveau Document texte.txt" 'txtFromEmailAddress
For i = 0 To 2
If Attachment(i) <> "" Then
Set AttachME = mailDoc.CreateRichTextItem(Attachment(" & i & "))
Set EmbedObj = AttachME.EMBEDOBJECT(1454, "", Attachment(i), Attachment(" & i & "))
mailDoc.CreateRichTextItem (Attachment(" & i & "))
End If
Next i
'Send the document
mailDoc.PostedDate = Now() 'Gets the mail to appear in the sent items folder
mailDoc.SEND 0, Recipient
LOTUSNOTES3 = True
MsgBox "Fiche validée, message envoyé"
GoTo ExitHandle
Exit Function
TraiteErreur: LOTUSNOTES3 = False
MsgBox "Erreur Critique durant l'envoi,contacter Alexandre""""", RLE 3768.", vbCritical, "Error"
ExitHandle:
'Clean Up
Set mailDb = Nothing
Set mailDoc = Nothing
Set AttachME = Nothing
Set Session = Nothing
Set EmbedObj = Nothing
End Function
je me suis aussi creusé la tete pour faire un truc dans le genre:
If UserForm1.ComboBox10.Text = BE_Str Then Recipient(2) = "xxxxx.xxxxxx@xxx.com" afin que l'on directement le nom de la personne suivant le choix de la combobox, mais cela ne fonctionne pas.
je suis preneur de tout conseil, merci, et bonne journée a vous