Bonjour,
j'ai cette procédure avec moi :
qui me permet d'envoyer un mail 3 fois par jour
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 Subcette 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 :
Mais à priori ya un bin's à cette procédure et ça marche pas tout le temps
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 Subsachant 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![]()
![]()
Partager