Timing avec calcul auto toute les 10 secondes

Jilde

XLDnaute Occasionnel
Bonjour les gens ;) !!

Pour des formations de 4 heures avec un rythme soutenu, j'ai des modules qui durent de 5 mn à 30 mn.

J'ai donc créer un petit fichier Excel avec un timing sur une 4 heures.
Mon fichier m'affiche donc l'heure [=maintenant()] dans une cellule, et, en fonction de celle-ci, me met, par le biais de mise en forme conditionnelle :
- en rouge le module qui vient de se terminer,
- en vert le module qui est en cours,
- en bleu le prochain module.
Je m'en sert pour respecter au mieux mon timing et ainsi balayer tous les points de ma formation dans les délais.

Mon problème c'est que je suis obligé de faire [F9] régulièrement pour mettre à jour le tableau.

Donc je cherche juste à mettre, à l'ouverture du fichier, une routine qui me fasse se calcul toute les 5 ou 10 secondes.

Doit pas être bien compliqué si :eek: ?

Merci d'avance ;) !!
 
Dernière édition:

jetted

XLDnaute Occasionnel
Re : Timing avec calcul auto toute les 10 secondes

allo, tu peux essayer cette methode

Code:
Sub Workbook_Open()
    newhour = Hour(Now())
    newminute = Minute(Now())
    newsecond = Second(Now()) + 10
    waittime = TimeSerial(newhour, newminute, newsecond)
    Application.Wait waittime
    Application.CalculateFull    ' ou Application.SendKeys "%^{F9}"
End Sub
 

jetted

XLDnaute Occasionnel
Re : Timing avec calcul auto toute les 10 secondes

mon erreur, essaie ceci

Code:
Sub Workbook_Open()
    Call RefreshData
End Sub

Sub RefreshData()
       Application.OnTime Now + TimeValue("00:00:10"), "RefreshData"
       Application.CalculateFull 
End Sub
 

Jilde

XLDnaute Occasionnel
Re : Timing avec calcul auto toute les 10 secondes

Bon, j'ai rajouté un "Do ... Loop" tout bete :

Code:
Private Sub workbook_open()
    Do While Now() < Now() + 10 'oui je sais, c'est pas terrible mais ça marche !
        newhour = Hour(Now())
        newminute = Minute(Now())
        newsecond = Second(Now()) + 10
        waittime = TimeSerial(newhour, newminute, newsecond)
        Application.Wait waittime
        Application.CalculateFull    ' ou Application.SendKeys "%^{F9}"
    Loop
End Sub

Par contre, il me reste deux problèmes :
1. J'ai le sablier qu is'affiche en permanence
2. Il faudrait que je puisse sortir proprement de la boucle avec [Echap] sans provoquer un bug ...
 

jetted

XLDnaute Occasionnel
Re : Timing avec calcul auto toute les 10 secondes

Fais sure que le nom de la macro "RefreshData" est bien orthographier aux 3 endroits
copie et colle le code (ci-joint) dans ton module, sauvegarde le document, ferme le document et re-ouvre le document et cela devrait fonctionne
Code:
Sub auto_Open()
    Call RefreshData
End Sub

Sub RefreshData()
       Application.OnTime Now + TimeValue("00:00:10"), "RefreshData"
       Application.CalculateFull 
End Sub
 

Jilde

XLDnaute Occasionnel
Re : Timing avec calcul auto toute les 10 secondes

Bah ouais, sur ... Déjà le précédent code, j'ai fait un copier coller.
Et là pareil ...
Seule différence, c'est qu'avec "auto_Open()", y se passe rien du tout, nada, queud'chic...
Et avec "WorkBook_Open", ça bug ...

J'ai essayer de changer le nom "RefreshData" en "Rafraichir" histoire d'être sur qu'il y ai pas un conflit avec un autre truc qui s'appellerait "RefreshData", mais ça n'a rien changé ...

Mystère et boule de pétanque ...
 

Jilde

XLDnaute Occasionnel
Re : Timing avec calcul auto toute les 10 secondes

YEEESSSSSS !!!

En fait, le bug venait du fait que je mettais tout dans le code de "ThisWorkbook" !
Il a suffit que je crée un module pour y mettre la macro RefreshData pour que ça marche !

Merci bien jetted !!
 

Discussions similaires

Réponses
7
Affichages
405
Réponses
5
Affichages
159

Statistiques des forums

Discussions
312 492
Messages
2 088 908
Membres
103 982
dernier inscrit
krakencolas