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
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
Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
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
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
Set Maildb = Nothing Set MailDoc = Nothing Set AttachME = Nothing Set Session = Nothing Set EmbedObj = Nothing
End Sub
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" <sice42@hotmail.com> a écrit dans le message de news:
1172657436.776647.113770@k78g2000cwa.googlegroups.com...
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
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
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
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