Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

liste destinataire mail lotus

1 réponse
Avatar
sai sai
Cette proc=E9dure ci dessous me permet d'envoyer un mail automatiquement
avec pj =E0 plusieurs destinataires ( recip(0),
recip(1),recip(2)....).Seulement j'ai une liste 120 destinataires et
je pense pas qu'il soit efficace de les mettre une =E0 une ! j'ai essay=E9
d'utiliser la m=E9thode Range pour r=E9cup=E9rer une fois la liste des
destinataires mais =E7a ne marche pas (le =3D
Sheets("MAIL").Range("mils") ). y-t-il une solution pour cela ? Aussi
comment faire pour visualiser le mail avant de l'envoyer ?

Sub EnvoiMail_2()
Dim Message As String
Dim subject As String
Dim mydate
Dim mydate2 As String
Dim le As String

mydate =3D Now()
mydate2 =3D Format(mydate, "dd mmm yy")
subject =3D "Hedge Funds Controls on " & mydate2

Dim recip(1) As Variant
le =3D Sheets("MAIL").Range("mils")
recip(0) =3D le

recip(0) =3D "toto@yahoo.fr"
recip(1) =3D "reft@fert.gy"
recip(0) =3D "rinb@ferz.hu"

Dim Fichier As String
Fichier =3D "cette ligne ne sert =E0 rien pour le moment mais il faut la
conserver pour que le code fonctionne..."

Message =3D "Please find below "

Call SendNotesMail_2(subject, Fichier, recip, Message, True)

End Sub

Public Sub SendNotesMail_2(subject As String, Attachment As String,
Recipient As Variant, BodyText As String, SaveIt As Boolean)

Dim Maildb
Dim UserName
Dim MailDbName
Dim MailDoc
Dim AttachME
Dim Session
Dim EmbedObj

Set Session =3D CreateObject("Notes.NotesSession")
UserName =3D Session.UserName
MailDbName =3D Left(UserName, 1) & Right(UserName, (Len(UserName) -
InStr(1, UserName, " "))) & ".nsf"
Set Maildb =3D Session.GETDATABASE("", MailDbName)

If Maildb.IsOpen =3D True Then
Else
Maildb.OPENMAIL
End If

Set MailDoc =3D Maildb.CREATEDOCUMENT
MailDoc.Form =3D "Memo"
'MailDoc.sendto =3D Recipient
MailDoc.subject =3D subject
MailDoc.Body =3D BodyText
MailDoc.SAVEMESSAGEONSEND =3D SaveIt

Dim myFile1, myFile2, myFile3 As String
myFile1 =3D "a:def\rte.xls"
'myFile2 =3D "g:\ry\fe.xls"
'myFile3 =3D "c\re\hy.xls"

If Attachment <> "" Then
Set AttachME =3D MailDoc.CREATERICHTEXTITEM("Attachment")
Set EmbedObj =3D AttachME.EMBEDOBJECT(1454, "", myFile1, "")
' Set EmbedObj =3D AttachME.EMBEDOBJECT(1454, "", myFile2, "")
' Set EmbedObj =3D AttachME.EMBEDOBJECT(1454, "", myFile3, "")
End If

MailDoc.AppendItemValue "Classification", "C1"
MailDoc.SEND 0, Recipient
MailDoc.Save True, True

Set Maildb =3D Nothing
Set MailDoc =3D Nothing
Set AttachME =3D Nothing
Set Session =3D Nothing
Set EmbedObj =3D Nothing

End Sub

1 réponse

Avatar
Jac
Bonjour,

si tes destinataires sont dans un tableau, il suffirait de les mettres à la
suite les uns des autres avec un ; comme séparateur pour obtenir qu'une
seule variable à jeter en une fois en pâture à ton mail.
Côté macro ça pourrait être ceci :
===================================== Sub DESTINATAIRES_DU_MAIL()
' variables -----------------------------------
COLONNE_A_TRAITER = "A"
PREMIERE_LIGNE = 3
' calculs préliminaires -----------------------
PREMIERE_CELLULE = COLONNE_A_TRAITER & PREMIERE_LIGNE
DERNIERE_LIGNE = Range(PREMIERE_CELLULE).End(xlDown).Row
DESTINATAIRES = Range(COLONNE_A_TRAITER & PREMIERE_LIGNE).Value
' destinataires en 1 variable et séparés par des ;
For X = PREMIERE_LIGNE + 1 To DERNIERE_LIGNE
DESTINATAIRES = DESTINATAIRES & "; " & Range(COLONNE_A_TRAITER &
X).Value
Next X
End Sub

===================================== Sachant que la variable DESTINATAIRES peut contenir 64k caractère environ,
ça devrait aller.

Question subsidiaire 1 : du moment que c'est automatique et qu'envoyer 1 ou
120 mails c'est le même prix, pourquoi ne ferais-tu pas avec une boucle 120
mails ?
Question subsidiaire 2 : regarde un peu du côté des CCI (BCC) qui ne sont
rien d'autre que les Copie Conforme Invisible afin que chaque destinataire
ne voie pas la liste des 120 destinataires.
On en reparle quand tu veux.

Jac



"sai sai" a écrit dans le message de news:

Cette procédure ci dessous me permet d'envoyer un mail automatiquement
avec pj à plusieurs destinataires ( recip(0),
recip(1),recip(2)....).Seulement j'ai une liste 120 destinataires et
je pense pas qu'il soit efficace de les mettre une à une ! j'ai essayé
d'utiliser la méthode Range pour récupérer une fois la liste des
destinataires mais ça ne marche pas (le Sheets("MAIL").Range("mils") ). y-t-il une solution pour cela ? Aussi
comment faire pour visualiser le mail avant de l'envoyer ?

Sub EnvoiMail_2()
Dim Message As String
Dim subject As String
Dim mydate
Dim mydate2 As String
Dim le As String

mydate = Now()
mydate2 = Format(mydate, "dd mmm yy")
subject = "Hedge Funds Controls on " & mydate2

Dim recip(1) As Variant
le = Sheets("MAIL").Range("mils")
recip(0) = le

recip(0) = ""
recip(1) = ""
recip(0) = ""

Dim Fichier As String
Fichier = "cette ligne ne sert à rien pour le moment mais il faut la
conserver pour que le code fonctionne..."

Message = "Please find below "

Call SendNotesMail_2(subject, Fichier, recip, Message, True)

End Sub

Public Sub SendNotesMail_2(subject As String, Attachment As String,
Recipient As Variant, BodyText As String, SaveIt As Boolean)

Dim Maildb
Dim UserName
Dim MailDbName
Dim MailDoc
Dim AttachME
Dim Session
Dim EmbedObj

Set Session = CreateObject("Notes.NotesSession")
UserName = Session.UserName
MailDbName = Left(UserName, 1) & Right(UserName, (Len(UserName) -
InStr(1, UserName, " "))) & ".nsf"
Set Maildb = Session.GETDATABASE("", MailDbName)

If Maildb.IsOpen = True Then
Else
Maildb.OPENMAIL
End If

Set MailDoc = Maildb.CREATEDOCUMENT
MailDoc.Form = "Memo"
'MailDoc.sendto = Recipient
MailDoc.subject = subject
MailDoc.Body = BodyText
MailDoc.SAVEMESSAGEONSEND = SaveIt

Dim myFile1, myFile2, myFile3 As String
myFile1 = "a:defrte.xls"
'myFile2 = "g:ryfe.xls"
'myFile3 = "crehy.xls"

If Attachment <> "" Then
Set AttachME = MailDoc.CREATERICHTEXTITEM("Attachment")
Set EmbedObj = AttachME.EMBEDOBJECT(1454, "", myFile1, "")
' Set EmbedObj = AttachME.EMBEDOBJECT(1454, "", myFile2, "")
' Set EmbedObj = AttachME.EMBEDOBJECT(1454, "", myFile3, "")
End If

MailDoc.AppendItemValue "Classification", "C1"
MailDoc.SEND 0, Recipient
MailDoc.Save True, True

Set Maildb = Nothing
Set MailDoc = Nothing
Set AttachME = Nothing
Set Session = Nothing
Set EmbedObj = Nothing

End Sub