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 !
Posté le 18-07-2010 à 21:01:44 profileditEdition rapideansweranswer +answer -configMPFavoris
Prévenir les modérateurs en cas d'abus
Bonjour,
J'ai des mails à envoyer en mass (400/jour).
J'ai outlook 2010.
J'ai créé sous excel cette macro :
Code :
PHP:
Sub EnvoiMail_Outlook()
Do
Dim ol As New Outlook.Application
Dim olmail As MailItem
Dim CurrFile As String
Set ol = New Outlook.Application
Set olmail = ol.CreateItem(olMailItem)
With olmail
.To = Range("Macro1!A1" ).Value & ";".Subject = "sujet"
.Attachments.Add "chemin.pdf"
.Display
Selection.Delete Shift:=xlUp
End With
Loop
End Sub
Pour ce faire, j'ai mis en signature dans Outlook le corp de texte.
Cela a bien marché, pendant 10j, mais depuis quelques jours, outlook ne reconnait plus la pièce jointe que sur le 1er mail de la liste, pour les suivants j'ai le message d'erreur : "le fichier spécifié est introuvable"
J'ai tenté de réparer outlook mais ca ne change rien!!!
Pourrais-tu donner l'ensemble de ton code? Il y a bien un début ("Do") et une fin de boucle ("Loop") mais je ne comprends pas quel évènement (exple "while" ou "until") te fait sortir de ta boucle... Problème de boucle infinie peut être?
Ta liste d'adresses email est dans un fichier Excel si je comprends bien... Peux-tu également poster une copie pour "exemple"?
Mais je suis d'accord qu'en l'etat, ton code devrait fonctionner correctement... A tester: Ajoute peut-être un "DoEvents" après l'ajout du fichier joint et un "Save" et "Close" pour être sur qu'on "ferme" le message en-cours avant la prochaine boucle...
Dernière petite question : Est-ce que ton chemin "chemin.pdf" est complet? Exple: "C:\Documents and Settings\Administrator\My Documents\...\fichier.pdf" pour un fichier local ou "\\Server\Documents\...\fichier.pdf" pour un fichier réseau...
Code:
Sub EnvoiMail_Outlook()
Do
Dim ol As New Outlook.Application
Dim olmail As MailItem
Dim CurrFile As String
Set ol = New Outlook.Application
Set olmail = ol.CreateItem(olMailItem)
With olmail
.To = Range("Macro1!A1" ).Value & ";".Subject = "sujet"
.Attachments.Add "chemin.pdf"
DoEvents
.Display
.Save 'save draft
.Close olSave 'close and save changes
Selection.Delete Shift:=xlUp
End With
Loop
End Sub
Mon code est complet 😉 et celui a marché sur 4000 mails avant de bugger 😉
Ma liste de mail, se trouvent en colonne A, je les envois 200 par 200 et je fais échap une fois qu'il a terminé sa liste tt simplement 😉
Je place mon curseur en A1 et celui ci supprime la ligne a chaque boucle.
Je pense que le probleme vient d'outlook et non d'excel, car il me créé bien le message, avec la piece jointe, le bon poid de la piece joint mais celle ci est comme "cassée", je ne peux ni envoyer le message, ni ouvrir cette PJ via le mail.
Je rejoins les avis de pedrag31 (y'en a qui ont une imagination pour les pseudos !).
Il vaut mieux mettre le chemin complet pour ta pièce jointe.
Sinon, tu instancies 2 fois Outlook !
Quand tu écris
Code:
Dim ol As New Outlook.Application
et
Code:
Set ol = New Outlook.Application
C'est la même chose.
De plus, comme le dis pedrag, il n'y a pas de condition de sortie de ta boucle. Même si ça a marché, je te conseille d'éviter...
Dans le with, fais bien des retours à la ligne, c'est plus lisible.
Donc j'écrirais (en instancient une seule fois Outlook). En plus, tu refais les Dim et instances dans le DO LOOP, à éviter !
Code:
Sub EnvoiMail_Outlook()
Dim ol As New Outlook.Application
Dim olmail As MailItem
Dim CurrFile As String
Do
Set olmail = ol.CreateItem(olMailItem)
With olmail
.To = Range("Macro1!A1" ).Value & ";"
.Subject = "sujet"
.Attachments.Add "x\xxxxxx\xxxx\chemin.pdf"
.Display
Selection.Delete Shift:=xlUp
End With
Loop
End Sub
Perso, j'ai un exemple d'envoie massif sur la page :
Améliorer son efficacité avec Excel: VBA EXCEL & OUTLOOK (2/3) : Ecrire un mail outlook automatiquement
mon chemin était bien complet "le chemin.doc'" que j'avais mis, c'etait pour illustré 😉
Bon j'ai résolu mon soucis avec une méthode grand malade mental!
J 'ai dupliqué 200 fois mon fichier sur mon pc
J'ai dupliqué 200 fois le bout de code ds ma macro
grâce au concaténer d'excel j'ai personnalisé chaque bout de code, par le nouveau chemin d'accès et en incrémentant les noms de mes variables!
Ca marche nickel!
- 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