Lotus pour les experts

littlefish Messages postés 21 Date d'inscription mardi 6 février 2007 Statut Membre Dernière intervention 23 mars 2007 - 1 mars 2007 à 09:34
littlefish Messages postés 21 Date d'inscription mardi 6 février 2007 Statut Membre Dernière intervention 23 mars 2007 - 23 mars 2007 à 15:31
Bonjour,
Dim Recipient(2) As Variant<?xml:namespace prefix o ns "urn:schemas-microsoft-com:office:office" /??>



Dim Attachment(3) As Variant






 







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) = "alexandre.adam.07@eigsi.fr"






        Recipient(1) = "littlefish@hotmail.fr"






       








        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






               







 






       








         

'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






        'mailDoc.body = BodyText






        mailDoc.ReturnReceipt = "1"






           Set rtitem = mailDoc.CreateRichTextItem("Body")






                      








        With rtitem






       








       








       .AppendText "Bonjour,"






      

.AddNewLine 2






       .AppendText "Une Nouvelle Fiche  est en cours"






       .AddNewLine 2






       .AppendText "Vous trouverez les liens hypertextes des documents annexées à cette fiche"






      

.AddNewLine 2






       .AppendText "************************************************************************"






       .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 "xxxxxxxxxxxxxxxxxxxxxxxxx"






      

.AddNewLine 3






      








       End With






         








          








                 'Protection copie






        Call mailDoc.REPLACEITEMVALUE("$KeepPrivate", "1")






       








        mailDoc.SAVEMESSAGEONSEND = SaveIt






        'Set up the embedded object and attachment and attach it






       

Attachment(0) = "D:\Data\EnvoiMailLotus3\visiteurs.doc" 'txtFromEmailAddress






        Attachment(1) = "D:\Data\EnvoiMailLotus3\JOURNEE DE FORMATION ET D.doc" 'txtFromEmailAddress






       

Attachment(2) = "D:\Data\EnvoiMailLotus3\JmlIcone2.jpg" '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






       

GoTo ExitHandle






          







TraiteErreur: LOTUSNOTES3 = False






    MsgBox "Erreur Critique durant l'envoi,contacter xxxxxxxx, le stagiaire xxxxx 3654.", vbCritical, "Error"





ExitHandle:






        'Clean Up






        Set mailDb = Nothing






        Set mailDoc = Nothing






        Set AttachME = Nothing






        Set Session = Nothing






        Set EmbedObj = Nothing





End Function

Jai à partir de cette exemple tiré de programmation excel VBA pour les nuls cela sous outlook:

Sub EnvoiEmail()
  Dim ApplicOutlook As Object
  Dim ElémentCourrier As Object
  Dim cellule As Range
  Dim Sujet As String
  Dim AdresseElec As String
  Dim Destinataire As String
  Dim Prime As String
  Dim Msg As String
  
'création de l'objet outlook

Set ApplicOutlook = CreatObject("Outlook.Application")

  'Boucle dans les lignes
  For Each cellule In _
    Columns("B").Cells.SpecialCells(xlCellTypeConstants)
    If cellule.Value Like "*@*" Then
      'Extraction des données
      Sujet = "Votre prime annuelle"
      Destinataire = cellule.Offset(0, -1).Value
      AdresseElec = cellule.Value
      Prime = Format(cellule.Offset(0, 1).Value, "$0,000.")
            
     'Composition du message
      Msg = "Cher " & Destinataire & vbCrLf & vbCrLf
      Msg = Msg & "J'ai le plaisir de vous informer "
      Msg = Msg & "que votre prime annuelle est de "
      Msg = Msg & Prime & vbCrLf & vbCrLf
      Msg = Msg & "William Rose" & vbCrLf
      Msg = Msg & "Président"
    
      'Création de l'élément de courrier et envoi
      Set ElémentCourrier = ApplicOutlook.CreateItem(0)
      With ElémentCourrier
        .To = AdresseElec
        .subject = Sujet
        .Body = Msg
        .Display
      End With
    End If
  Next
End Sub

Je ne sais pas trop comment faire car à l'heure actuelle, j'ai mon adresse mail qui fait référence à un récipient dans lotus.
mais je souhaiterai, que le mail soit envoyé, par rapport à ce que désigne le contenu d'une combobox (par exemple contenu BE destinataire Aménagement) et ce contenu de combobox (tiré de la feuille 2 colonne F)fait réference à un nom qui se trouverai dans la colonne w, le nom serai écris de la forme:
pierre.trucmuche dans la colonne w
ainsi je souhaiterai utiliser cette boucle:
For Each cellule In _
    Columns("W").Cells.SpecialCells(xlCellTypeConstants)
    If cellule.Value Like "*.*" Then 'envoi du mail, je vérifie qu'il il y a bien le point est ensuite je rajouterai a ce nom l'adresse mail:
genre: pierre.trucmuhe@transport.alstom.com et hop cela l'envoi, mais c'est trop puissant pour moi
j'utiliserai un truc genre: if contenucombobox=Be destinataire Then on utilise la ligne correspondante, mais je sais pas trop comment faire, alex


 

2 réponses

insnec33 Messages postés 1 Date d'inscription vendredi 23 mars 2007 Statut Membre Dernière intervention 23 mars 2007
23 mars 2007 à 15:02
Bonjour,


Le code que vous proposez est plus complet que celui que j'avais trouvé concernant l'envoi d'un mail par Lotus Note. Il permet entre autre d'envoyer un texte en HTML.


Sauriez vous s'il est possible de composer le mail mais ne pas l'envoyer.


L'envoi serait alors manuel et permettrait d'ajouter une annotation.


Merci
0
littlefish Messages postés 21 Date d'inscription mardi 6 février 2007 Statut Membre Dernière intervention 23 mars 2007
23 mars 2007 à 15:31
Bonjour, je débute,ce n'est pas mon code, j'ai rajouté la partie texte, c'est tout, est mis selon mes besoins, j'ai vu que c'était possible sur les forum, car il me semble avoir vu cette question il s'appelait smalcop, l'expert excel, qui y avait répondu.alex
0
Rejoignez-nous