Bonjour tout le monde
j'ai une macro qui crée des fichier excel en utilisant un formulaire excel existant FieVide , en le remplissant par les données concernant un salarié donné , qui les enregistre sous le nom du salarié puis qui doit les envoyer par mail chaque fichier au destinataire approprié
voici un exctrait de mon programme :
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
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
 
 
For n = 3 To 10 
' Création des différents fichiers : je met pas le code car il est long mais il marche bien
 
'enregistrement des fichiers :
 
Workbooks("fievide.xls").SaveAs Filename:="D:\Documents and Settings\wboudgui\Desktop\test17juillet\fiches-crees\" & nom & ".xls"
 
 Workbooks(nom & ".xls").Close False
 
'''envoi des mails : 
 
 
 Set OutApp = CreateObject("Outlook.Application")
  OutApp.Session.Logon
  Set OutMail = OutApp.CreateItem(0)
  AttachMail = "D:\Documents and Settings\wboudgui\Desktop\test17juillet\fiches-crees\" & nom & ".xls"
   strbody = "Information sur la mise à jour"
  On Error Resume Next
      With OutMail
          .To = Workbooks("UPIFich.xls").Worksheets("Feuil1").Cells(n, 6).Value
          '.CC = "Francois.pignon@free.fr;robin.des.bois@sherwood.gb"
          .Subject = "fiche d'imput"
          .BodyFormat = olFormatHTML
        .HTMLBody = "Bonjour, <BR><BR>Ce message est un mail automatique, il vous informe que… "
       If AttachMail <> "" Then
        .Attachments.Add AttachMail
    End If
          .Display
 
  SendKeys "^{ENTER}"
      End With
          On Error GoTo 0
       Set OutMail = Nothing
      Set OutApp = Nothing
 
'Cette procédure temporise pendant le nombre
' de secondes qu'on lui transmet en argument
Dim Début As Long, Fin As Long, Chrono As Long
Début = Timer
Dim secondes As Interior
'secondes = 13
Fin = Début + 10
Do Until Timer >= Fin
   DoEvents
Loop
 
 
 Next
 
' Code permettant de fermer toutes les fenetres outlook après l'envoi car sinon elles restent ouvertes :
 
 
Dim objs As Object
Dim obj As Object
Dim strSQL As String
Dim strWMI As String
strWMI = "winmgmts:"
strSQL = "Select * From Win32_Process "
strSQL = strSQL & "where Name = 'OUTLOOK.EXE'"
Set objs = GetObject(strWMI).ExecQuery(strSQL)
For Each obj In objs
obj.Terminate
Next
Set objs = Nothing
Le problème c'est que le programme envoie tous les fichiers sauf le premier fichier fichier crée bien que sa création et son enregistrement se font bien

merci de m'aider si vous avez une idée sur
bonne journée

le problème est dans l'envoi, car meme quand je supprime le code fermant toutes les fenetres excel après l'envoi des fichiers par mail,

tous les mails sont envoyés sauf le premier fichier ou j'ai une fenetre outlook qui s'ouvre avec ce premier fichier en pièce jointe mais sans etre envoyé , donc je suis obligée de cliquer moi meme sur envoyer alors le but c'est justement que ce soit automatique .