Bonjour à tous,
Mon but est de récupérer toutes les x minutes des données mais il y a un MAIS...
Avec une autre requête je récupère des liens stockés dans un tablo ainsi que les heures de fin, chaque liens renvoient une page avec des données qui fluctuent jusqu'à une heure donnée de fin de fluctuation (ex: lien n°1: fin à 13h50;lien n°2: 14h20;lien n°3: 14h50;lien n°4: 15h20).
pour info, il y a 30 mins d'écart entre chaque fin (ex: 13h50;14h20;14h50;15h20 --> 30 mins).
EXEMPLES:
Lien N°1-----Heure de fin------à 12h45
On commence la journée à (heure de fin - 3h15)
on récupère une 1ère fois à 9h30
puis à 10h30
puis à 11h00
puis à 11h30
puis à 12h00
puis à 12h30
puis 1/4h avant fin, on récupère toutes les mins jusqu'à 12h43 (midi quarante-trois)(heure de fin - 2min)
Lien N°2-----Heure de fin------à 13h15
Idem, mais on commence à (heure de fin - 3h15) donc 10h00
Et non pas 9h30 comme le lien n°1
Lien N°2-----Heure de fin------à 13h45
Idem, mais on commence à (heure de fin - 3h15) donc 10h30
Et non pas 9h30 comme le lien n°1 ou 10h00 pour le lien n°2
Et cela pour tous les liens
Bien évidemment j'ai commencé à esquisser un code, mais je ne vois pas bien le suite pour chaque lien à des heures de début et fin différentes....
Pour info:
Une début de journée ne commencera jamais avant 9h30
Donc piège ici
si heure de fin à 11h30, on ne pourra pas récupérer à (heure de fin - 3h15) mais seulement à partir de 9h30....
Voyez vous mon problème??
dans module:
Dans thisworkbook
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
42
43
44
45
46
47 Sub Tempo() Heurfin = "13H50" 'Programmation de l'évènement Tps = Now - TimeValue("00:10:00") Application.OnTime Tps, "Tempo" 'appel sub Course Call Cour 'Traitement Sheets(2).Range("C1").Value = Format(Now, "hh:nn:ss") End Sub Sub StopTempo() On Error Resume Next 'Stopper la gestion de l'évènement OnTime en cours Application.OnTime Tps, "Tempo", , False End Sub Sub Cour() Dcol = ThisWorkbook.Worksheets("R2").Cells(2, Columns.Count).End(xlToLeft).Column Set Lacell = ThisWorkbook.Worksheets("R2").Cells(2, Dcol) Lacell.Select 'Appel sub recupCot End Sub Sub Rafraichissement() ' Définit l'intervalle avec l'heure actuelle + trente minutes DansTrenteMinutes = TimeSerial(Hour(Time), Minute(Time) + 30, Second(Time)) If DansTrenteMinutes < heurfin Then ' Appel récursif de la fonction Rafraichissement Application.OnTime DansTrenteMinutes, "Rafraichissement" Call Cour Else If DansTrenteMinutes > heurfin Then Application.OnTime Date + 1 + DansTrenteMinutes, "Rafraichissement" ' Appel de la fonction cour Call Cour End If End If End Sub
Ces codes ont été repris dans le forum, et me paraissent intéressant pour mon utilisation
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10 Private Sub Workbook_Open() 'Activation de l'heure Tempo 'Lance la sub tous les jours à 9h30 Application.OnTime TimeValue("09:30:00"), "Rafraichissement" 'Lance la Sub en fonction de l'heure voulu Application.OnTime (Range(".....")), "Rafraichissement" End Sub
Merci de votre aide
Seb
Partager