Bonjour à tous,

J'ai écrit ce code :

J'envoie le mail non pas par .send mais en utilisant les sendkeys (pour éviter le message de confirmation )
Ca fonctionne bien dans le cas où Outlook est déjà lancé...
Par contre dans le cas où Outlook n'est pas lancé... le sendkey se fait trop rapidement et l'email n'est pas envoyé... Comment faire pour demander de faire le sendkeys qu'une fois que Outlook est bien lancé (sans utiliser de timer) ?


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
Sub Envoi_Mail()
 
    Dim eMail As Object
 
    Set eMail = CreateObject("Outlook.Application").CreateItem(olMailItem)
 
    With eMail
        .to = "moi@domaine.fr"
        .Subject = "Test mail auto"
        .Body = "Mail automatique"
        .Display
        '.Send 'je n'utilise pas cette fonction car message de confirmation apparaît
    End With
 
 
    SendKeys "^{ENTER}" 'Envoi du mail par les touches Ctrl + Enter
 
 
    Set eMail = Nothing 'Réinit
 
End Sub
 
 
 
Sub Ouvrir_Outlook()
 
    'Lance Outlook en mode Hide : La fenêtre est masquée et activée
    Shell "OUTLOOK.EXE", vbHide
 
End Sub
 
 
 
Sub Test_Outlook_Run()
 
    'Permet de tester si Outlook est lancé ou pas
 
 
    Dim OL As Object
 
    On Error Resume Next
    Set OL = GetObject(, "Outlook.Application")
 
    'Cas si outlook n'est pas lancé
    If OL Is Nothing Then
        Ouvrir_Outlook
        Envoi_Mail
    'Cas si outlook est lancé
    Else
        Envoi_Mail
    End If
 
End Sub


Merci

A+

Dams'