XL 2016 RESOLU : Lancer une macro à intervalles régulier dans une plage Horaire définie.

  • Initiateur de la discussion Initiateur de la discussion jige34
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

jige34

XLDnaute Nouveau
Bonjour à tous.
Je cherche pour mon classeur boursier à créer une macro qui se déclencherait toutes les 5 minutes entre 8h45 et 17h45.
Je suis arrivé aux deux résultats, mais sans pouvoir les imbriquer.
Un peu d'aide svp ?

Sub LancementAutomatique()

Depart = #8:45:00 AM# 'heure de départ souhaitée
Arret = #5:45:00 PM# 'heure de fin souhaitée
Go = TimeSerial(Hour(Time), Minute(Time), Second(Time))
Application.OnTime Go, "LancementAutomatique"
Do While Go > Depart And Go < Arret
MajCotations ' Fonction à déclencher
Range("B1") = Time ' affichage de l'heure
Go = TimeSerial(Hour(Time), Minute(Time) + Range("A1"), Second(Time)) 'en A1 valeur 5 pour 5 minutes
Loop
End Sub
 
Bonjour patricktoulon et merci de ta réponse.
Je ne comprends pas cependant clairement ta solution.
Le classeur est ouvert lorsque je l'utilise.
Je déclenche la macro une première fois, et je voudrais juste qu'elle s'exécute toutes les 5 minutes si l'heure est comprise dans la plage définie.
 
re
bonjour réfléchi une seconde
tu a 3 paramètres
une heure de depart "08:45"
une heure de limite "17:45"
et toute les 5 minutes

comment veux tu que la premiere amorce soit faite si il y a ces deux conditions

ca veux dire q'au pire la macro sera lancée pour rien jusqu"a 8:45 et pour rien après 17:45 tant que le fichier est ouvert

si l'on doit démarrer seulement >=8:45 c'est une tache
pour tout les lancement qui suivent c'est app.ontime jusqu'a 17 heures
 
J'ai résolu le soucis à ma façon, mais ça marche.

Sub LancementAutomatique()

Arret = #5:45:00 PM# 'heure de fin souhaitée
Go = TimeSerial(Hour(Time), Minute(Time), Second(Time)) 'Définition de l'heure + 5 mn
If Go >= Arret Then ' Si l'heure fin est dépassée
Exit Sub ' Arret Macro
Else
Application.OnTime Go, "LancementAutomatique" 'Demarrage Macro
MajCotations ' Fonction à déclencher
Range("B1") = Time ' affichage de l'heure
' Go = TimeSerial(Hour(Time), Minute(Time) + Range("A1"), Second(Time)) 'Définition de l'heure + 5 mn déplacé dans MajCotation()
End If
End Sub

Evidemment, comme je ne connais pas VBA ce n'est sans doute pas propre, mais ça fonctionne.
Merci
patricktoulon et Excel Downloads
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD
Retour