VBA & Lotus Note

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. Merci Bidouilleu_R,
    je test et je t'informe.
    A+
    1. 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+
    2. @Julienlol vu que je ne suis pas membre ça a bloqué les mails... enfin tout le monde aura compris xD
  2. 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...
    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 ?
      1. 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