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