Résolu Office 365 Application.OnTime

SCorbeil

XLDnaute Nouveau
Bonjour,

Petit problème avec l'exécution de cette macro.

VB:
Sub GOAuto()

Dim HrREQ1 As Date
Dim HrREQ2 As Date
Dim JrSEM As Integer

JrSEM = Weekday(Now(), vbMonday)
HrREQ1 = TimeSerial(15, 30, 0)
HrREQ2 = TimeSerial(11, 30, 0)

If JrSEM = 5 Then

    Application.OnTime HrREQ2, "REQAutomatique", , True
    
End If

If JrSEM < 5 Then

    Application.OnTime HrREQ1, "REQAutomatique", , True
    
End If

If JrSEM > 5 Then

Resume Next

End If

End Sub
La macro "GOAuto" est lancée avec l'ouverture du Workbook, mais ne lance pas la macro "REQAutomatique" à l'heure prévue. Le Workbook est fermé à tous les jours (à la fermeture des bureaux) et lancé à nouveau chaque jours ouvrable par le premier utilisateur.

Je suis possiblement encore si près de l'arbre qu'il m'est pas possible de voir la forêt.

Merci à l'avance à tous les collaborateurs.
 
Ce fil a été résolu! Aller à la solution…

laurent3372

XLDnaute Occasionnel
Supporter XLD
Bonsoir,
VB:
Sub GOAuto()

    Dim HrREQ1 As Date
    Dim HrREQ2 As Date
    Dim JrSEM As Integer
   
    JrSEM = Weekday(Now(), vbMonday)
    'HrREQ1 = TimeSerial(22, 22, 0)
    HrREQ1 = Now + TimeSerial(0, 1, 0) 'Dans 1 minute
    HrREQ2 = Now + TimeSerial(0, 2, 0) 'Dans 2 minutes
   
    If JrSEM = 5 Then
        Application.OnTime HrREQ2, "REQAutomatique", , True
    End If
   
    If JrSEM < 5 Then
        Application.OnTime HrREQ1, "REQAutomatique", , True
       
    End If
   
    If JrSEM > 5 Then
        'Resume Next
    End If
   
End Sub

Sub REQAutomatique()
    MsgBox "C'est l'heure"
End Sub
Cordialement,
--
LR
 

SCorbeil

XLDnaute Nouveau
Bonsoir,
VB:
Sub GOAuto()

    Dim HrREQ1 As Date
    Dim HrREQ2 As Date
    Dim JrSEM As Integer
  
    JrSEM = Weekday(Now(), vbMonday)
    'HrREQ1 = TimeSerial(22, 22, 0)
    HrREQ1 = Now + TimeSerial(0, 1, 0) 'Dans 1 minute
    HrREQ2 = Now + TimeSerial(0, 2, 0) 'Dans 2 minutes
  
    If JrSEM = 5 Then
        Application.OnTime HrREQ2, "REQAutomatique", , True
    End If
  
    If JrSEM < 5 Then
        Application.OnTime HrREQ1, "REQAutomatique", , True
      
    End If
  
    If JrSEM > 5 Then
        'Resume Next
    End If
  
End Sub

Sub REQAutomatique()
    MsgBox "C'est l'heure"
End Sub
Cordialement,
--
LR
Bonjour Laurent3372,

Merci pour cette réponse, mais l'objectif est de lancer la macro "REQAutomatique" à une heure précise soit 15h30 du lundi au jeudi inclusivement et à 11h30 les vendredis.

C'est pour cette raison que j'ai ajouté la notion de jour de semaine qui est représenté par la variable "JrSEM" qui prend en considération que le lundi est le 1er jour de la semaine.

Donc, la quête continue et au risque de me répéter, je vous remercie encore pour votre réponse.

Cordialement,
 

patricktoulon

XLDnaute Barbatruc
re
bonjour
Le planificateur de tâches ne sait que lancer une tâche tous les jours à la même heure. Il ne fait pas de distinction entre les jours de la semaine
depuis quand le planificateur ne fait que ca !!!!??????

et puis la on est pas dans planificateur de tache on est dans excel avec on time
ca implique que le fichier doit rester ouvert

tu a l'api shreduler ou le trigger service pour ca ;)
 

patricktoulon

XLDnaute Barbatruc
re
2 pistes
l'api
Code:
Private Declare Function NetScheduleJobAdd Lib "netapi32.dll" _
    (ByVal Servername As String, Buffer As Any, JobID As Long) As Long
ou

Code:
CreateObject("Schedule.Service")
allez un peu de google hein ;)
 

patricktoulon

XLDnaute Barbatruc
re
sinon on se rappelle le bon vieux temps ou l'on se servait de VBSCript et on adapte en vba

exemple
VB:
'tout les mercredi a 18:04
Sub test()
    Set wShell = CreateObject("Wscript.Shell")
    jour = "WED"    'pour le mercredi
    'pour plusieurs jours
    'jour= "MON,TUE,WED,THU,FRI,SAT,SUN"
   
    NomTACHE = """patrick"""
   
    chemin_fichier = """C:\Users\polux\DeskTop\aaa.cmd"""
   
    A_quelle_Heure = "18:05"
   
    'codée avec argument
    wShell.Run "SchTasks /Create /SC WEEKLY /D " & jour & " /TN " & NomTACHE & " /TR " & chemin_fichier & " /ST " & A_quelle_Heure
   
    'codée en dur
    'wShell.Run "SchTasks /Create /SC WEEKLY /D WED /TN 'patrick' /TR 'C:\Users\polux\DeskTop\aaa.cmd' /ST 18:05"
End Sub
je suis nostalgique d'un coup là ;) :cool:

si on veux pas le répéter c'est ONLY a la place de WEEKLY

a noter les triples guillemets qui deviennent un seul en interne ne pas les oublier ;)

ps: je viens de tester sur W7 64 excel 32 2007 ca marche encore

a +

edit si je regarde dans mon planifieur de tache on vois bien les taches programer on ne peut plus explicite
Capture.JPG
 
Ce message a été identifié comme étant une solution!
Dernière édition:

Dranreb

XLDnaute Barbatruc
Bonsoir.
De mémoire un Application.OnTime ouvre le classeur s'il y a lieu pour pouvoir exécuter la macro. Mais si c'est pour le lendemain il me semble préférable de spécifier la date et l'heure plutôt que l'heure seule. Faire DH = Date + TimeSerial(15, 30, 00): If DH< Now Then DH=DH + 1. Évitez aussi d'exécuter plusieurs fois le Application.OnTime DH pour la même date/heure.
 

Dranreb

XLDnaute Barbatruc
Oui, qu'est-ce qu'il y a ?
Beaucoup ne le sachant pas n'arrivèrent plus à refermer un classeur par ce qu'il se rouvrait tout le temps à cause d'un Application.OnTime exécuté à la fin de la procédure planifiée pour la seconde d'après !
Mais on ne sait jamais, les choses changent au fil des versions d'Excel …
 

patricktoulon

XLDnaute Barbatruc
re
je n'ai jamais eu ce phénomène quand un classeur est fermé et q'un app.ontime a été programmé ben walouh
si tu a une démo je suis curieux
 

Dranreb

XLDnaute Barbatruc
Chez moi, si après avoir cliqué sur LancerOnTime je clique sur FermerClasseur sans avoir cliqué sur AnnulerOnTime, le classeur se ferme … puis se rouvre !
 

Fichiers joints

patricktoulon

XLDnaute Barbatruc
re
a ok en fait tu ferme par macro et garde l'instance de excel ouverte c'est pour ca et c'est normal
l'instance ontime est toujours active
mais si on le ferme par la croix rouge ca ne fonctionne pas ;)
 

Staple1600

XLDnaute Barbatruc
Re

=>patricktoulon (bonsoir)
Et si on sera sur un Mac ça ne fonctionne pas non plus ;)
(cf message#16)
 

Créez un compte ou connectez vous pour répondre

Vous devez être membre afin de pouvoir répondre ici

Créer un compte

Créez un compte Excel Downloads. C'est simple!

Connexion

Vous avez déjà un compte? Connectez vous ici.

Haut Bas