Bonjour,

j'ai cette procédure avec moi :

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
Sub START2()
Dim fLag, newHour, newMinute, newSecond, waitTime
newHour = Hour(Now())
newMinute = Minute(Now())
newSecond = Second(Now()) + 1
waitTime = TimeSerial(newHour, newMinute, newSecond)
deb1:
If Time <= "09:30:00" Then
    GoTo mail1
ElseIf Time <= "14:30:00" Then
    GoTo mail2
ElseIf Time <= "18:30:00" Then
    GoTo mail3
Else
    GoTo nolaunch
End If
 
mail1:
While Time < "09:30:00"
    DoEvents
Wend
'Application.Wait "09:30:01"
Call SendMeEmail
mail2:
While Time < "14:30:00"
    DoEvents
Wend
'Application.Wait "14:30:01"
Call SendMeEmail
mail3:
While Time < "18:30:00"
    DoEvents
Wend
'Application.Wait "18:30:01"
Call SendMeEmail
nolaunch:
While Time > "18:30:00"
    DoEvents
Wend
GoTo deb1
End Sub
qui me permet d'envoyer un mail 3 fois par jour cette procédure marche très bien hein le seul problème est que cette procédure bouffe tout le process et que donc quand je la lance dans les processus ça prend énormément de place et vu que je travaille sur d'autres fichiers Excel ben ça devient plus long du coup...Comme vous le voyez j'ai essayé de mettre un Wait mais le problème du Wait c'est qu'il arrete carrément tous les process Excel, donc si je suis en train de travailler sous Excel, bah ya tout qui se coupe pendant l'envoi du mail
Alors ma question c'est est-ce qu'il existe un moyen de façon à ce que cette macro fonctionne qu'à l'heure indiquée ? et non qu'elle tourne tout le temps jusqu'a à l'heure de l'envoi ?

Pour information j'ai essayé ça :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
Sub START2()
deb1:
If Time < "09:30:00" Or Time > "18:30:00" Then
    Application.OnTime TimeValue("09:30:00"), "SendMeEmail"
End If
If Time > "09:30:00" And Time < "14:30:00" Then
    Application.OnTime TimeValue("14:30:00"), "SendMeEmail"
End If
If Time > "14:30:00" And Time < "18:30:00" Then
    Application.OnTime TimeValue("18:30:00"), "SendMeEmail"
End If
GoTo deb1
End Sub
Mais à priori ya un bin's à cette procédure et ça marche pas tout le temps sachant qu'il faut que le mail soit donc envoyé 3 fois par jour aux heures indiquées, et tous les jours du lundi au vendredi

Vala merci beaucoup pour votre aide si quelqu'un a une solution