Soucis outlook via VBA excel

Cremouenette

XLDnaute Nouveau
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!!!

Si une personne à une idée, je suis preneuse ;)

Merci beaucoup :)
 

pedrag31

XLDnaute Occasionnel
Re : Soucis outlook via VBA excel

Bonjour Cremouenette, Bonjour le forum,

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

Bonne journée, :)
 

Cremouenette

XLDnaute Nouveau
Re : Soucis outlook via VBA excel

Bonjour

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.
 

datacell33

XLDnaute Nouveau
Re : Soucis outlook via VBA excel

Bonjour,

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

Bon courage !
 

Cremouenette

XLDnaute Nouveau
Re : Soucis outlook via VBA excel

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!

et Outlook ne bug plus!
 

Discussions similaires

Réponses
2
Affichages
260
Réponses
3
Affichages
708

Statistiques des forums

Discussions
312 298
Messages
2 086 979
Membres
103 417
dernier inscrit
abaabdelghani