Bonjour le forum,
voilà , j'ai écrit un programme qui doit envoyer différents fichiers excels enregistrés dans un repertoire à des destinataires dont les e-mails outlook sont enregistrés dans un fichier excel aussi
le programme fait ça en trois étapes en boucle (il répète la teche pour tous les fichier de façon à envoyer à chaque destinataire le fichier qui le concerne):
1) envoi du fichier
2) Attendre le temps que l'envoi soit fait (Timer)
3) fermer outlook pour ne pas avoir plein de fenetres qui sont ouvertes à la fin surtt s'il y'a beaucoup d'envoi
les problèmes que j'ai rencontrés sont les suivants :
1) l'envoi n'est pas fait ! : pourtant la fenetre outlook s'ouvre bien, il y'a bien la pièce jointe qui est attachée, le champ destinataire est bien rempli ainsi que tous les champs , mais une fenetre apparait : on me demanche si oui ou non je veux enregistrer les modifications faites et ce pour chaque envoi donc ce n'est pas automatique , j'aimerai que cette fenetre n'apparaisse plus: après meme quand j'appuie sur "oui" le fichier reste en brouillon et n'es pas envoyé
Je crois que c'est plutot un problème de temporisation dans le Timer, car hier avec quelques modification, j'ai réussi à faire l'envoi mais c'est hyper lent sachant que je veux automatiser l'envoi pour à peu près 200 fichiers donc j'aimerai accélérer l'envoi
Merci bien
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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 For n = 2 To 200 ' envoi du mail 'Dim ol As New Outlook.Application Set ol = CreateObject("Outlook.Application") ' Dim olmail As MailItem Dim CurrFile As String Set olmail = ol.CreateItem(olMailItem) With olmail .To = Workbooks("UPIFich.xls").Worksheets("Feuil1").Cells(n, 6).Value 'Destinataire .Subject = "fiche d'imputation" 'Sujet .Body = "voici votre fiche " 'Corps du mail .Attachments.Add "D:\Documents and Settings\wboudgui\Desktop\test17juillet\fiches-crees\" & nom & ".xls" 'Pièce jointe .Display '.Send 'On peut switcher entre .send et .display selon que l'on veut envoyer le mail (send) ou seulement le préparer et le vérifier(display) End With 'SendKeys "^{ENTER}" 'SendKeys "{ENTER}" 'Cette procédure temporise pendant le nombre 'de secondes qu'on lui transmet en argument: choisir la bonne temporisation pour que le mail soit envoyé avant que les fenetre soient fermées Dim Début As Long, Fin As Long, Chrono As Long Début = Timer 'Dim secondes As Interior 'secondes = 20 Fin = Début + 30 Do Until Timer >= Fin DoEvents Loop 'Sub Quit_Outlook() 'Demander à Excel de Quitter Outlook Set myOlApp = CreateObject("Outlook.Application") myOlApp.Quit 'End Sub 'SendKeys "{ENTER}" SendKeys "^{ENTER}" Next
Partager