test vérification envoi mail
Bonjour le forum,
J'ai écrit une macro sous excel qui permet d'envoyer un ensemble de fichiers excel enregistrés dans un repertoire à un ensemble de destinanataireS dans les e-mails sont inscrits dans un tableaux: chaque fichier est envoyé à un destinataire en utilisant outlook.
Le programme parcourt la liste des destinataires grace à une boucle for.
J'ai remarqué que la boucle for est plus rapide que l'envoi meme des fichiers, du coup, le compteur passe à un autre fichier sans que le précédent ne soit envoyé,; du coup j'ai plein de fichiers qui passent en brouillon.
Pour corriger ça, j'ai rajouté un compteur, ça marche sur mon prdi mais dès que j'essaye sur un autre ordi , j'ai plein de fenetre outlook qui s'ouvre, qui restent ouvertes et le programme plante : en fait ça dépend de la vitesse du processeur !
Donc la meilleure solution serait de pouvoir tester si l'envoi d'un mail via outlook a bien été fait de façon à ne pas passer au prochain envoi que après l'envoi du précédent, mais je sais pas du tout comment écrire un code qui fait ça !
voici mon code (la partie envoi seulement) :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68
|
Set OutApp = CreateObject("Outlook.Application")
OutApp.Session.Logon
Set OutMail = OutApp.CreateItem(0)
AttachMail = "D:\Documents and Settings\wboudgui\Desktop\test-14 aout\fiches-crees\" & nom & ".xls"
strbody = "Information sur la mise à jour"
On Error Resume Next
With OutMail
'mettre display après with et non pas avant sendkeys car sinon le premier fichier n'est pas envoyé
'.Display
' SendKeys "^{ENTER}"
'.Attachments.Add "C:\Users\foufitta\Desktop\test-14 aout\fiches-crees\" & nom & ".xls"
.To = Workbooks("UPIFich.xls").Worksheets("Feuil1").Cells(n, 6).Value
'.To = "wafa.boudguiga@yahoo.fr"
'.CC = "Francois.pignon@free.fr;robin.des.bois@sherwood.gb"
.Subject = "fiche d'imput"
.BodyFormat = olFormatHTML
.HTMLBody = "Bonjour, <BR><BR> voici votre fiche ! "
'' Timer permettant d'attendre que l'envoi soit fait
If AttachMail <> "" Then
.Attachments.Add AttachMail
End If
.Display
SendKeys "^{ENTER}"
End With
Do Until Timer >= 15
DoEvents
Loop
Next
'mettre with avant goto car sinon le premier fichier n'est pas envoyé
On Error GoTo 0
Set OutMail = Nothing
Set OutApp = Nothing
'Je ne ferme pas outlook pour le laisser finir l'envoi
'Set myOlApp = CreateObject("Outlook.Application")
' myOlApp.Quit
SendKeys "{ENTER}"
SendKeys "^{ENTER}" |
merci beaucoup, à plus ;)