VBA & Lotus Note

MrQuant Messages postés 56 Statut Membre -  
 Julien -
Bonjour,

J'ai écrit un bout de code VBA qui me permet de monitorer une variable et d'envoyer un email (Lotus note 7.0.4) dès lors que le résultat d'un test est TRUE. Tout fonctionne nickel-chrome à part que je souhaite mettre en CC le boss et lorsque je mets:

Call MailDoc.ReplaceItemValue("CopyTo", "nom@machin.fr")

Ça n'envoie rien

alors qu'en mettant

Call MailDoc.ReplaceItemValue("CopyTo", "NomDuGroupe") (un mailing list)

Ça marche.

Any explanations
d'avance merci.

5 réponses

  1. MrQuant Messages postés 56 Statut Membre 1
     
    Aucune idée !!
    0
  2. Bidouilleu_R Messages postés 1209 Statut Membre 296
     
    Bonjour,
    Voici comment je fais avec Lotus Notes V9...
    Petite explication ...je me suis servi de cette macro afin d'envoyer les mots de passe d'accés pour différents utilisateurs d'ou la variable Mot_de_passe

    Les infos étaient sur la feuil1 ...
    je pense que j'ai mis assez de commentaires.

    Public Mot_De_passe As String
    
    
    Sub SendNotesMail()
    'paramètres des objets nécessaires pour Lotus Notes
    Dim Maildb As Object 'La base mail
    Dim UserName As String 'le nom de l'utilisateur courant
    Dim MailDbName As String 'le nom de la base mail de l'utilisateur corant
    Dim MailDoc As Object 'le document mail
    Dim AttachME As Object 'les objets attachés
    Dim Session As Object ' l'objet session
    Dim EmbedObj As Object 'l'objet qui est transmis à lotus
    
    Dim Nbuser As Integer 'le nombre d'utilisateur
    Dim Prenom As String ' le prénom
    Dim Nom As String    ' le nom
    Dim AdresseMail As String 'prenom.nom@gm.com
    
    
    Nbuser = Sheets("feuil1").Range("A1").CurrentRegion.Rows.Count - 1
    
    
    ' Démarre une session LN
    Set Session = CreateObject("Notes.NotesSession")
    'on connait l'objet donc l'utilisateur username et la base
    
    UserName = Session.UserName
    MailDbName = Left$(UserName, 1) & Right$(UserName, (Len(UserName) - InStr(1, UserName, " "))) & ".nsf"
    'on ouvre la base dans LN
    Set Maildb = Session.GETDATABASE("", MailDbName)
    If Maildb.IsOpen = True Then
    'déjà ouvert
    Else
    Maildb.OPENMAIL
    End If
    '****************
    
    '
    'Paramètres du nouveau document mail
    
    For i = 1 To Nbuser
        
        Prenom = LCase(Sheets("Feuil1").Range("A1").Offset(i, 0).Value)
        Nom = LCase(Sheets("Feuil1").Range("A1").Offset(i, 1).Value)
        Mot_De_passe = Sheets("Feuil1").Range("A1").Offset(i, 2).Value
        AdresseMail = Prenom & "." & Nom & "@gm.com"
        
        Set MailDoc = Maildb.CREATEDOCUMENT
        MailDoc.Form = "Memo"
        MailDoc.Sendto = AdresseMail ' la tu mets l'adresse mail de ton correspondant" '(laisse les "")
        'MailDoc.copyto = ""
    
        MailDoc.copyto = "prenom2.nom2@provider.com" 'l'adresse de la personne en copie" '(laisse les "")
        MailDoc.Subject = "Essai envoi pour mot de passe" 'la tu mets le sujet" '(avec des "")
    
        ' Construction du corps du message
        Set objNotesField = MailDoc.CREATERICHTEXTITEM("Body")
        With objNotesField
            .AppendText "Bonjour,"
            .AddNewLine 2
            .AppendText "Veuillez trouver ci-joint  ... >>>" 'tu peux ajouter des lignes
            .AddNewLine 1
            .AppendText " un commentaire ...."
    
            .AddNewLine 2
            .AppendText "... un autre"
    
            .AppendText "Salutations"
            .AddNewLine 3
            .AppendText " Important"
            .AppendText " si vous recevez ce mail par erreur .... merci de le détruire... "
    
    
        End With
    
    MailDoc.SaveMessageOnSend = SaveIt
    
    
    '************
    
    'envoi du document
    MailDoc.PostedDate = Now()
    MailDoc.Send 0, Recipient
    Next
    'Clean Up
    Set Maildb = Nothing
    Set MailDoc = Nothing
    Set AttachME = Nothing
    Set Session = Nothing
    Set EmbedObj = Nothing
    
    End Sub
    0
  3. MrQuant Messages postés 56 Statut Membre 1
     
    Bonjour Forum
    Merci Bidouilleu_R... mais mon code fonctionne nickel chrome ...c'est juste que lorsque je met plusieurs personnes en CC il n'envoie un email qu'a la dernière personne ne CC. Par exemple si je mets:

    MailDoc.copyto = "prenom1.nom1@provider.com"
    MailDoc.copyto = "prenom2.nom2@provider.com"
    MailDoc.copyto = "prenom3.nom3@provider.com"

    seul le user 3 (prenom3.nom3@provider.com) reçoit un email et pas les autres !!!

    any suggestions ?
    0
  4. Bidouilleu_R Messages postés 1209 Statut Membre 296
     
    suggestion ? oui!

    MailDoc.copyto = "prenom1.nom1@provider.com"
    MailDoc.copyto = "prenom2.nom2@provider.com"
    MailDoc.copyto = "prenom3.nom3@provider.com"


    MailDoc.copyto = "prenom1.nom1@provider.com;prenom2.nom2@provider.com;prenom3.nom3@provider.com"

    fait un ptit test...
    0
  5. Vous n’avez pas trouvé la réponse que vous recherchez ?

    Posez votre question
  6. MrQuant Messages postés 56 Statut Membre 1
     
    Merci Bidouilleu_R,
    je test et je t'informe.
    A+
    0
    1. Julien
       
      Salut.

      Juste pour info...
      MailDoc.copyto est une variable.
      Tu lui attribues une première valeur ***@***
      Puis
      Tu écrases cette valeur avec une seconde valeur ***@***
      Et
      Une nouvelle fois avec une troisième valeur ***@***

      Donc normal que seul le 3e user reçoit le mail.

      Il faut concaténer tes variables.

      De mémoire, sur lotus le séparateurs de contacts est la virgule mais bon j'ai testé avec le point-virgule et ça fonctionne aussi :p


      Pour répondre à Bidouilleu_R :
      Le fait de faire
      MailDoc.copyto = "***@***;***@***;***@***"

      ça ne me semble pas bon, ça attribuera comme destinataire ***@***;***@***;***@*** comme unique destinataire à MailDoc.copyto

      donc ne fonctionnera pas.

      j'ai déjà vu ce cas-là


      Je pense que la solution sera d'utiliser un tableau avec Array("...", "...")

      Donc pour reprendre le problème de MrQuant

      ça serait :

      MailDoc.copyto = Array("***@***", "***@***", "***@***")


      a+
      0
      1. Julien > Julien
         
        lol vu que je ne suis pas membre ça a bloqué les mails... enfin tout le monde aura compris xD
        0