Envoi mail CDO PJ multipliées...

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 !

titiborregan5

XLDnaute Accro
Bonjour à tous,

aujourd'hui je viens vous voir pour un problème d'envoi de mail...
Etant sous Excel 2003 (ça pique :'( ) je suis confronté au message d'alerte d'Outlook pour lequel il faut cliquer sur Oui pour envoyer le message... le problème est que c'est pour un mailing donc assez fastidieux à la longue...
J'ai donc trouvé un moyen via CDO qui marche super bien, mis à part les pièces jointes...

j'ai testé sur boucle bidon de 5 lignes et pour le mail 1 il envoie la pj envoi1.doc c'est ok!
Par contre pour le 2 il envoie la pj envoi1.doc et envoi2.doc alors que je veux que le envoi2.doc!
Pour le mail 3 on a envoi1.doc + envoi2.doc + envoi3.doc ...

Ce qui n'est pas vraiment mon but, vous comprendrez...

Mon code
Code:
Sub test()
Set iMsg = CreateObject("CDO.Message")
Set iConf = CreateObject("CDO.Configuration")
With iMsg
For i = 2 To 6
fich = "L:\ECHANGES\ADIX-V5\CDG\récup dossiers\envoi" & i - 1 & ".doc"
Set .Configuration = iConf
.To = Cells(i, 1)
.CC = ""
.BCC = ""
.From = "aaa.bbb@xxx.fr"
.Subject = Cells(i, 2)
.TextBody = Cells(i, 3)
.addattachment fich
.Send
Next
End With

End Sub

Si vous avez une idée pour que chaque ait sa propre PJ et rien d'autre ...
Merci d'avance,

Tibo
 
Dernière édition:
Re : Envoi mail CDO PJ multipliées...

Bonjour Chris Merci pour ta réponse,
mais si je la déplace au dessus de la boucle for, comment va t il trouver le nom du fichier envoi & i-1?

Je vais tout de même essayer ça tout de suite!

J'ai donc une erreur à la ligne
Code:
.addattachment fich
le fichier spécifié est introuvable...

lorsque je mets le fichier en "dur" (en gros je lui dis envoi1.doc) l'envoi se fait bien mais j'ai les mêmes problèmes de nombre de PJ...

je pense que l'erreur pourrait venir du "cache" qu'il faudrait vider à la fin de l'envoi et avant l'envoi suivant...
Non?
 
Dernière édition:
Re : Envoi mail CDO PJ multipliées...

Re

Excuse-moi je n'avais pas vu que tu joignais un fichier différent.

Remets ta ligne où elle était et ajoute sous la ligne For
Code:
If .Attachments.Count <> 0 Then .Attachments.Delete (1)

Cela efface l'attachment précédent
 
Re : Envoi mail CDO PJ multipliées...

Bonjour,
J'essaie d'adapter le code ci-dessus dans mon cas. J'ai les destinataires en colonne C de la ligne 6 à 8 et les chemins des fichiers en colonne D (C:\users\.......\.pdf. Le but est d'envoyer le fichier en D6 au destinataire en C6 et ainsi de suite. J'expérimente sur 3 lignes mais le but est bien sûr de le faire pour 400 destinataires environs.
Quand j'exécute la macro : .AddAttachment fich est surligné en jaune, pourtant quand je pointe dessus, j'ai bien le chemin de la pièce jointe qui apparaît.
Voici le code :

Option Explicit

Sub envoipjpardestinataire()
Dim i As Integer
Dim fich As String
Dim Feuil1 As Sheets
Dim iCfg As CDO.Configuration
Dim imsg As CDO.Message

With Sheets("Feuil1")
For i = 6 To .Cells(Rows.Count, 3).End(xlUp).Row ' de la ligne 6 à la dernière ligne utilisée en colonne C
'fich = "C\Users\.........\individueltest" & i - 1 & ".pdf"
fich = Cells(i, 4)

Set iCfg = New CDO.Configuration
With iCfg
.Fields(cdoSMTPServer) = "smtp.orange.fr"
.Fields(cdoSMTPServerPort) = 25 '
.Fields(cdoSendUsingMethod) = cdoSendUsingPort
.Fields(cdoSMTPConnectionTimeout) = 200
.Fields.Update
End With

Set imsg = New CDO.Message
With imsg
Set .Configuration = iCfg
If .Attachments.Count <> 0 Then .Attachments.Delete (1)
.Sender = "monadressemail@hotmail.fr"
.Subject = Range("C3")
.TextBody = Range("C4")
.To = Range("C" & i)
.AddAttachment fich
.Send

End With
Set imsg = Nothing
Set iCfg = Nothing

Next

End With
MsgBox "Sending Complete"

End Sub
--------------------------------------------
---------------------------------------------

Merci de m'indiquer ce qui ne va pas car là, j'ai pas mal fouiné et j'avoue que je sèche. J'ai déplacé des bouts de code et rien à faire. Quand je mets un nom de fichier fixe en pdf, ça marche. Je suis sur excel 2010.
 
Re : Envoi mail CDO PJ multipliées...

Bonjour, je me réponds à moi-même. ça marche si je nomme les fichiers envoi1, envoi2 et que j'utilise fichier = fich = "C\Users\.........echeanciers\envoi" & i - 1 & ".pdf.
Mes fichiers se nomment nomprenom.pdf, c'est pour ça que je voulais récupérer le chemin des fichiers dans la colonne D. Comme le code de mon message précédent ne marche pas, j'ai trouvé un moyen pour contourner le problème. Je renomme mes fichiers nomprenom1, nomprenom2, nomprenom3 et ainsi de suite. Les nomprenom se trouvent dans la colonne E (nom de fichiers sans le n° de ligne à la fin).

En utilisant le code suivant ça marche : j'ai mis uniquement les lignes qui changeaient
..........
With ActiveSheet
For i = 6 To .Cells(Rows.Count, 3).End(xlUp).Row ' de la ligne 6 à la dernière ligne utilisée en colonne C
fich1 = "C:\Users\......................................\echeanciers" & "\" & Cells(i, 5) & (i - 4) - 1 & ".pdf"
.......
With imsg
Set .Configuration = iCfg
If .Attachments.Count <> 0 Then .Attachments.Delete (1)
.Sender = "monadresse@hotmail.fr"
.Subject = Range("C3")
.TextBody = Range("C4")
.To = Range("C" & i)
.AddAttachment fich1
.Send

Si ça peut aider
 
Dernière édition:
- 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

Discussions similaires

  • Question Question
Réponses
1
Affichages
584
Réponses
6
Affichages
739
Réponses
1
Affichages
1 K
Retour