david54520
XLDnaute Junior
Bonjour à tous.
Merci d'avance à celles et ceux qui s'intéresseront au pb que je rencontre.
Je vous passe le pourquoi du comment, mais j'ai besoin de créer une macro pour envoi de mail, par paquets de 10
Pour la création de cette macro, tout fonctionne comme désiré sauf un truc : il faut que je puisse envoyer mes mails par "paquets de 10 adresses" donc
J'ai une liste importante au début (liste initiale), via la macro PAQUET10, je copie colle les 10 premières adresses de ma liste initiale que je colle dans l'onglet à envoyer.
Je supprime ensuite les 10 premières adresses de la liste initiale, celle qui était la onzième adresse devient donc la première, et ainsi de suite
Puis, la macro est censée tourner avec une boucle : tant que la liste initiale n'est pas vide (onglet "intermédiaire"), tu fais les mails...
J'ai fait des essais avec une liste de 30 adresses
il me fait bien 3 mails, le premier ayant les 10 premières adresses, et puis çà part en cacahouète : le second les 10 adresses précédentes puis les 10 suivantes, et le troisième les 20 adresses précédentes et les 10 suivantes
J'ai l'impression que j'ai un problème dans ma boucle...ou qu'il faudrait que je vide la mémoire de ma variable "destinataires" avec de refaire un tour....mais là...je bloque
ci dessous la macro en question
Sub envoiPARmail_col()
Do While Sheets("intermediaire").Range("A1") <> ""
Call PAQUET10
Dim oOutlook As Object
Set oOutlook = CreateObject("Outlook.Application")
Dim oMail As Object
Set oMail = oOutlook.CreateItem(0)
With oMail
Dim sujet As String
Dim nomfic As String
Dim piecejointe As String
sujet = Sheets("mailg").Range("g3").Value
piecejointe = ActiveWorkbook.Path & "\" & Sheets("mailg").Range("g8").Value & ".pdf"
nomfic = Dir(piecejointe)
Dim k As Integer
Dim Destinataires As String
For k = 1 To Sheets("a_envoyer").Range("A65536").End(xlUp).Row
Destinataires = Destinataires & Sheets("A_envoyer").Range("A" & k) & ";"
Next k
Sheets("mailg").Range("A1:a16").Select
.SentOnBehalfOfName = "ladressequejeveux@truc.fr"
.display
.attachments.Add piecejointe
.Subject = sujet
'.To = ************
.BCC = Destinataires
Dim oObjetWord As Object
Set oObjetWord = .GetInspector.WordEditor
Selection.Copy
oObjetWord.Range(0).Paste
End With
Loop
MsgBox "Traitement terminé"
End Sub
Au plaisir de vous lire ! David
Merci d'avance à celles et ceux qui s'intéresseront au pb que je rencontre.
Je vous passe le pourquoi du comment, mais j'ai besoin de créer une macro pour envoi de mail, par paquets de 10
Pour la création de cette macro, tout fonctionne comme désiré sauf un truc : il faut que je puisse envoyer mes mails par "paquets de 10 adresses" donc
J'ai une liste importante au début (liste initiale), via la macro PAQUET10, je copie colle les 10 premières adresses de ma liste initiale que je colle dans l'onglet à envoyer.
Je supprime ensuite les 10 premières adresses de la liste initiale, celle qui était la onzième adresse devient donc la première, et ainsi de suite
Puis, la macro est censée tourner avec une boucle : tant que la liste initiale n'est pas vide (onglet "intermédiaire"), tu fais les mails...
J'ai fait des essais avec une liste de 30 adresses
il me fait bien 3 mails, le premier ayant les 10 premières adresses, et puis çà part en cacahouète : le second les 10 adresses précédentes puis les 10 suivantes, et le troisième les 20 adresses précédentes et les 10 suivantes
J'ai l'impression que j'ai un problème dans ma boucle...ou qu'il faudrait que je vide la mémoire de ma variable "destinataires" avec de refaire un tour....mais là...je bloque
ci dessous la macro en question
Sub envoiPARmail_col()
Do While Sheets("intermediaire").Range("A1") <> ""
Call PAQUET10
Dim oOutlook As Object
Set oOutlook = CreateObject("Outlook.Application")
Dim oMail As Object
Set oMail = oOutlook.CreateItem(0)
With oMail
Dim sujet As String
Dim nomfic As String
Dim piecejointe As String
sujet = Sheets("mailg").Range("g3").Value
piecejointe = ActiveWorkbook.Path & "\" & Sheets("mailg").Range("g8").Value & ".pdf"
nomfic = Dir(piecejointe)
Dim k As Integer
Dim Destinataires As String
For k = 1 To Sheets("a_envoyer").Range("A65536").End(xlUp).Row
Destinataires = Destinataires & Sheets("A_envoyer").Range("A" & k) & ";"
Next k
Sheets("mailg").Range("A1:a16").Select
.SentOnBehalfOfName = "ladressequejeveux@truc.fr"
.display
.attachments.Add piecejointe
.Subject = sujet
'.To = ************
.BCC = Destinataires
Dim oObjetWord As Object
Set oObjetWord = .GetInspector.WordEditor
Selection.Copy
oObjetWord.Range(0).Paste
End With
Loop
MsgBox "Traitement terminé"
End Sub
Au plaisir de vous lire ! David
Dernière édition: