Bonjour à tous,
Voici mon grand problème. Dans le code ci dessous, je peux checker que la boite d'envoi s'est incrémenté de 1 et donc savoir que mon mail est parti.
Or, si je ferme ma fenetre Outlook, toute l'appli plante puisque ma boucle
va rester à false. Donc, je voudrais savoir s'il est possible de remédier à ce problème : Ne pas être obligé d'envoyer un mail si la fenetre est ouverte.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 While IsSentMail(oApp, counter) = False Wend
Cordialement, polim78.
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 Private Sub Envoyer_Click() Dim oNmSpce As Outlook.NameSpace, oOutbox As Outlook.MAPIFolder Dim oApp As Outlook.Application Dim oMail As MailItem Dim counter As Integer Set oApp = CreateObject("Outlook.application") Set oMail = oApp.CreateItem(olMailItem) Set oNmSpce = oApp.GetNamespace("MAPI") Set oOutbox = oNmSpce.GetDefaultFolder(olFolderSentMail) counter = oOutbox.Items.Count oMail.Display oMail.Body = Me!Message oMail.Subject = Me!Objet oMail.To = Me!Destinataire While IsSentMail(oApp, counter) = False Wend Set oMail = Nothing Set oApp = Nothing End Sub Public Function IsSentMail(olApp As Outlook.Application, counter As Integer) As Boolean Dim oNmSpce As Outlook.NameSpace, oOutbox As Outlook.MAPIFolder Dim bValRetour As Boolean Set oNmSpce = olApp.GetNamespace("MAPI") Set oOutbox = oNmSpce.GetDefaultFolder(olFolderSentMail) If oOutbox.Items.Count = counter + 1 Then bValRetour = True Else bValRetour = False End If Set oOutbox = Nothing Set oNmSpce = Nothing IsOutboxEmpty = bValRetour End Function
Partager