Envoi Mail - Lotus - Plusieurs destinataires

  • Initiateur de la discussion Initiateur de la discussion larelik
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

L

larelik

Guest
Bonjour,

Voila j'ai un petit problème. J'ai une macro qui envoie des mails via Lotus.
Ma marco est censée remplir automatiquement le nom du destinataire et de la personne en copie.
Le problème survient quand j'ai deux personnes en destinataire. Aucun des deux ne recoient le mail.
Lorsque j'ai deux personnes, je sépare leur adresse mail par une virgule:
ex: Martine.dupont@gmail.com, Laurent.Louis@...

Par contre si jamais je met un point virgule, ils recoivent chacun le mail mais séparement. Il n'y a plus de chaine du coup.
ex: Martine.dupont@gmail.com; Laurent.Louis@...

La solution doit etre tres simple mais je n'arrive pas à la trouver. Et sans elle m'a macro ne sert à rien...

Avez vous une idée??
 
Re : Envoi Mail - Lotus - Plusieurs destinataires

Bonjour larelik,

Si tu utilises une commande du type :

Code:
MailDoc.sendto = Recipient

dans ton code qui envoie le mail, sache que Recipient peut être un Variant qui contient un Array

en clair :

Code:
Dim Recipient
 
Recipient = Array("toto@msn.com","[EMAIL="titi@gmail.com"]titi@gmail.com[/EMAIL]")
 
...
MailDoc.sendto = Recipient
 
Re : Envoi Mail - Lotus - Plusieurs destinataires

En faite c'est un peu plus compliqué que ca....
en faite mon mail change de destinataire en fonction du pays à qui je veux envoyer un mail.
L'adresse du destinataire est dans une case excel qui change en fonction du pays (j'ai utilisé la formule recherchv). J'ai donc la liste de tout les pays avec toutes les personnes qui correspondent à coté. Le probleme étant que quand il y a deux personnes pour un meme pays, lotus ne reconnait plus les adresses mail.

J'ai séparé les deux adresses mails par une virgule mais apparemment ca ne fonctionne pas....
 
Re : Envoi Mail - Lotus - Plusieurs destinataires

Re,

et en les mettant dans un tableau ?

admettons, 2 adresses du même pays en A1 et A2

Code:
Dim Recipient, Adresses() as string
Redim Adresses(1 to 1)
Adresses(1) = range("A1").value
'En vrai ça sera mieux dans une boucle...
Redim preserve Adresses(1 to 2)
Adresses(2) = range("A2").value
 
 
Recipient = Adresses
MailDoc.sendto = Recipient
 
Re : Envoi Mail - Lotus - Plusieurs destinataires

bonjour à tous

personnellement j'utilise une boucle en pratiquant de la sorte
un extrait du code tel qu'il est dans un classeur que j'ai pour un fils à son travail !
bien entendu il est dans le contexte de ce classeur, il faudra adapter les champs comme adresses ...

EDIT le 10 février 2019 à 8h10


1' envoi direct avec tableau
Code:
' --------- Envoi d'un mail avec Lotus Notes ---------- .
'Ajouter la référence Lotus Domino Objects (domobj.tlb) .
'Cocher Référence  [x]Lotus Domino Objects              .
Public Sub EnvoiMailLotusNotes(CheminEtFichier As String, Sujet As String, Message As String)

On Error GoTo ErreurNET: Err.Clear '*****

Dim oSession As Object     'CreateObject("Notes.NotesSession")
Dim UserName As String     'Nom d'utilisateur
Dim DataBase As Object     'Base des mails
Dim DataBaseName As String 'Nom de la base
Dim Document As Object     'Mail
Dim AttachME As Object     'Fich joint en RTF
Dim AttachF1 As Object     '1' pièce attachée

' load adresses dans la feuille nommée NomDeLaFeuilDATA$
'dans la cellule "CellDATA_AdresDestinataire"
'au format Adres1@orange.fr;Adres2@free.fr;Adres3......
Dim Tablo As Variant, AdresDestinataire As String
AdresDestinataire = Sheets(NomDeLaFeuilDATA$).Range("CellDATA_AdresDestinataire")
If InStr(AdresDestinataire, ";") = 0 Then AdresDestinataire = AdresDestinataire & ";"
Tablo = Split(AdresDestinataire, ";")

' Crée la session
Set oSession = CreateObject("Notes.NotesSession")
' Récupère nom d'utilisateur
UserName = oSession.UserName
DataBaseName = Left$(UserName, 1) & Right$(UserName, (Len(UserName) - InStr(1, UserName, " "))) & ".nsf"
' Ouvre la base des mails (si fermé, ouvre et demande le password)
Set DataBase = oSession.GetDataBase("", DataBaseName)
If Not DataBase.IsOpen Then DataBase.OpenMail

' Crée le document
Set Document = DataBase.CreateDocument
' Colle Adresses /Sujet /Message et - Envoie le Mail -
Document.Form = "Memo" 'type "Form", "Memo"
Document.Sendto = Tablo
Document.Subject = Sujet$
Document.Body = Message$
If CheminEtFichier$ <> "" Then 'Joint le Fichier
   Set AttachME = Document.CreateRichTextItem("Attachment")
   Set AttachF1 = AttachME.EmbedObject(1454, "", CheminEtFichier$, "Attachment")
End If
Document.SaveMessageOnSend = True 'True svg dans les courriers envoyés
Document.PostedDate = Now()
Document.Send 0, Tablo

'------- fin ---------
Set oSession = Nothing: Set DataBase = Nothing: Set Document = Nothing
Set AttachME = Nothing: Set AttachF1 = Nothing
On Error GoTo 0: Err.Clear
Exit Sub
'--------
ErreurNET:
Msg$ = "Problème de connexion !?" & vbLf & vbLf & _
       "Erreur " & Err.Source & "  No " & Err.Number & vbLf & vbLf & Err.Description
M$ = "Envoie Mail"
MsgBox Msg$, vbCritical, M$, Err.HelpFile, Err.HelpContext
On Error GoTo 0: Err.Clear: Exit Sub
End Sub


2' envoi en boucle
Code:
' --------- Envoi d'un mail avec Lotus Notes ---------- .
'Ajouter la référence Lotus Domino Objects (domobj.tlb) .
'Cocher Référence  [x]Lotus Domino Objects              .
Public Sub EnvoiMailLotusNotes(CheminEtFichier As String, Sujet As String, Message As String)

On Error GoTo ErreurNET: Err.Clear '*****

Dim oSession As Object     'CreateObject("Notes.NotesSession")
Dim UserName As String     'Nom d'utilisateur
Dim DataBase As Object     'Base des mails
Dim DataBaseName As String 'Nom de la base
Dim Document As Object     'Mail
Dim AttachME As Object     'Fich joint en RTF
Dim AttachF1 As Object     '1' pièce attachée

' load adresses dans la feuille nommée NomDeLaFeuilDATA$
'dans la cellule "CellDATA_AdresDestinataire"
'au format Adres1@orange.fr;Adres2@free.fr;Adres3......
Dim Tablo As Variant , AdresDestinataire As String
AdresDestinataire = Sheets(NomDeLaFeuilDATA$).Range("CellDATA_AdresDestinataire")
If InStr(AdresDestinataire, ";") = 0 Then AdresDestinataire = AdresDestinataire & ";"
Tablo = Split(AdresDestinataire, ";")

' Crée la session
Set oSession = CreateObject("Notes.NotesSession")
' Récupère nom d'utilisateur
UserName = oSession.UserName
DataBaseName = Left$(UserName, 1) & Right$(UserName, (Len(UserName) - InStr(1, UserName, " "))) & ".nsf"
' Ouvre la base des mails (si fermé, ouvre et demande le password)
Set DataBase = oSession.GetDataBase("", DataBaseName)
If Not DataBase.IsOpen Then DataBase.OpenMail

'       boucle envoi                 .
For I = LBound(Tablo) To UBound(Tablo)
If Trim(Tablo(I)) > "" Then
    AdresDestinataire = Tablo(I)
    'crée le document et colle /AdresDestinataire /Sujet /Message
    Set Document = DataBase.CreateDocument
    Document.Form = "Memo"
    Document.Sendto = AdresDestinataire
    Document.Subject = Sujet
    Document.Body = Message
    'Joint le Fichier
    If CheminEtFichier <> "" Then
       Set AttachME = Document.CreateRichTextItem("Attachment")
       Set AttachF1 = AttachME.EmbedObject(1454, "", CheminEtFichier, "Attachment")
    End If
    'Envoi le Mail
    Document.SaveMessageOnSend = True 'True svg dans les courriers envoyés
    Document.PostedDate = Now()
    Document.Send 0, AdresDestinataire
    ' suite...
    Set Document = Nothing: Set AttachME = Nothing: Set AttachF1 = Nothing
End If
Next
' fin ####################################################################
Set oSession = Nothing: Set DataBase = Nothing
Set Document = Nothing: Set AttachME = Nothing: Set AttachF1 = Nothing
On Error GoTo 0: Err.Clear
Exit Sub
ErreurNET:
Msg$ = "Erreur " & Err.Source & "  No " & Err.Number & vbLf & vbLf & Err.Description
T$ = "Envoi Mail: Problème de connexion !?"
MsgBox Msg$, vbCritical, T$, Err.HelpFile, Err.HelpContext
On Error GoTo 0: Err.Clear
End Sub
 
Dernière édition:
Re : Envoi Mail - Lotus - Plusieurs destinataires

Bonjour,

J'ai utiliser ce code seulement je ne comprends pas la raison de l'echec au niveau du destinataire car quand je mets dans un onglet "liste" des destinataires les uns à la suite des autres dans une même cellule avec une virgule en séparateur entre d'adresse correspondant dans le carnet d'adresse .

Je ne sais pas si la raisons est que dans ma liste l'adresse est sous la forme :"prenom1 Nom1/GROUP/FR,prenom2 Nom2/GROUP/FR," et qu'il ne sont pas suivi de "@xxxxx.fr".

Je ne sais pas ou chercher ni quoi modifier dans le code ci dessus pour eviter cet echec .

Merci pour votre aide . 😕
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD
Assurez vous de marquer un message comme solution pour une meilleure transparence.

Discussions similaires

S
Réponses
6
Affichages
2 K
soNZOOO
S
E
Réponses
1
Affichages
1 K
Réponses
5
Affichages
2 K
F
Réponses
1
Affichages
1 K
Arnaud59000
A
R
Réponses
1
Affichages
3 K
G
Réponses
1
Affichages
697
Gib3000
G
S
Réponses
8
Affichages
2 K
S
Retour