OVH Cloud OVH Cloud

Tache repetitive

4 réponses
Avatar
Alain
Bonjour le Forum,

voici mon probl=E8me, je vais essayer d'=EAtre clair, =


soit une sub IntE() qui va chercher sur internet des donn=E9es sur un pag=
e
html et ce p=E9riodiquement.

=E0 l'ouverture du classeur je lance ceci

Sub rafraichissement()
IntE
nexttick =3D Now + TimeValue("00:30:00")
Application.OnTime nexttick, "rafraichissement"
End Sub

qui devrais appeler IntE() toute les 30 mn, je dis devrais car en fait
la sub est ex=E9cuter un peu al=E9atoirement de quelques minutes =E0 30
minutes

de plus pour arr=EAter ce scrutateur je me sert de ceci:

Sub arret()
Application.OnTime nexttick, "rafra=EEchissement", False
End Sub

mais tant que excel est ouvert et ce m=EAme ci le classeur est ferm=E9
IntE() continue de s'ex=E9cuter malgr=E9 tout

auriez vous une id=E9e d'une part pour stabilis=E9 l'intervalle de temps
entre 2 appel et d'autre part pouvoir arr=EAter le scrutateur de mani=E8r=
e
efficace ?

merci

4 réponses

Avatar
papou
Bonjour
La procédure qui doit être lancée toutes les 30 min est IntE, c'est donc
cette macro qui doit être appelée dans la méthode OnTime.
Ensuite, pour arrêter ta méthode Ontime, il faut absolument passer en
variable publique ta donnée NextTick.
Parce que la méthode Ontime est utilisée au niveau application et ne peut
par conséquent pas être interrompue si le temps programmé n'est pas connu au
niveau application.
Voici donc ce que devrait donner les quelques modifs : (non testé)
Public NextTick As Double
Sub rafraichissement()
NextTick = Now + TimeValue("00:30:00")
Application.OnTime earliesttime:=NextTick, procedure:="IntE", _
schedule:=True
End Sub
Sub IntE()
'ton code
rafraichissement
End Sub
Sub Arret()
On Error Resume Next
Application.OnTime earliesttime:=NextTick, procedure:="IntE", _
schedule:úlse
End Sub

Cordialement
Pascal

"Alain" a écrit dans le message de
news:
Bonjour le Forum,

voici mon problème, je vais essayer d'être clair,

soit une sub IntE() qui va chercher sur internet des données sur un page
html et ce périodiquement.

à l'ouverture du classeur je lance ceci

Sub rafraichissement()
IntE
nexttick = Now + TimeValue("00:30:00")
Application.OnTime nexttick, "rafraichissement"
End Sub

qui devrais appeler IntE() toute les 30 mn, je dis devrais car en fait
la sub est exécuter un peu aléatoirement de quelques minutes à 30
minutes

de plus pour arrêter ce scrutateur je me sert de ceci:

Sub arret()
Application.OnTime nexttick, "rafraîchissement", False
End Sub

mais tant que excel est ouvert et ce même ci le classeur est fermé
IntE() continue de s'exécuter malgré tout

auriez vous une idée d'une part pour stabilisé l'intervalle de temps
entre 2 appel et d'autre part pouvoir arrêter le scrutateur de manière
efficace ?

merci
Avatar
Alain
un grand merci

je teste ça tout de suite


Bonjour
La procédure qui doit être lancée toutes les 30 min est IntE, c'e st donc
cette macro qui doit être appelée dans la méthode OnTime.
Ensuite, pour arrêter ta méthode Ontime, il faut absolument passer en
variable publique ta donnée NextTick.
Parce que la méthode Ontime est utilisée au niveau application et n e peut
par conséquent pas être interrompue si le temps programmé n'est p as connu au
niveau application.
Voici donc ce que devrait donner les quelques modifs : (non testé)
Public NextTick As Double
Sub rafraichissement()
NextTick = Now + TimeValue("00:30:00")
Application.OnTime earliesttime:=NextTick, procedure:="IntE", _
schedule:=True
End Sub
Sub IntE()
'ton code
rafraichissement
End Sub
Sub Arret()
On Error Resume Next
Application.OnTime earliesttime:=NextTick, procedure:="IntE", _
schedule:úlse
End Sub

Cordialement
Pascal

"Alain" a écrit dans le message de
news:
Bonjour le Forum,

voici mon problème, je vais essayer d'être clair,

soit une sub IntE() qui va chercher sur internet des données sur un p age
html et ce périodiquement.

à l'ouverture du classeur je lance ceci

Sub rafraichissement()
IntE
nexttick = Now + TimeValue("00:30:00")
Application.OnTime nexttick, "rafraichissement"
End Sub

qui devrais appeler IntE() toute les 30 mn, je dis devrais car en fait
la sub est exécuter un peu aléatoirement de quelques minutes à 30
minutes

de plus pour arrêter ce scrutateur je me sert de ceci:

Sub arret()
Application.OnTime nexttick, "rafraîchissement", False
End Sub

mais tant que excel est ouvert et ce même ci le classeur est fermé
IntE() continue de s'exécuter malgré tout

auriez vous une idée d'une part pour stabilisé l'intervalle de temp s
entre 2 appel et d'autre part pouvoir arrêter le scrutateur de maniè re
efficace ?

merci


Avatar
Alain
Formidable papou

cela fonctionne parfaitement

encore un grand merci


un grand merci

je teste ça tout de suite


Bonjour
La procédure qui doit être lancée toutes les 30 min est IntE, c 'est donc
cette macro qui doit être appelée dans la méthode OnTime.
Ensuite, pour arrêter ta méthode Ontime, il faut absolument passe r en
variable publique ta donnée NextTick.
Parce que la méthode Ontime est utilisée au niveau application et ne peut
par conséquent pas être interrompue si le temps programmé n'est pas connu au
niveau application.
Voici donc ce que devrait donner les quelques modifs : (non testé)
Public NextTick As Double
Sub rafraichissement()
NextTick = Now + TimeValue("00:30:00")
Application.OnTime earliesttime:=NextTick, procedure:="IntE", _
schedule:=True
End Sub
Sub IntE()
'ton code
rafraichissement
End Sub
Sub Arret()
On Error Resume Next
Application.OnTime earliesttime:=NextTick, procedure:="IntE", _
schedule:úlse
End Sub

Cordialement
Pascal

"Alain" a écrit dans le message d e
news:
Bonjour le Forum,

voici mon problème, je vais essayer d'être clair,

soit une sub IntE() qui va chercher sur internet des données sur un page
html et ce périodiquement.

à l'ouverture du classeur je lance ceci

Sub rafraichissement()
IntE
nexttick = Now + TimeValue("00:30:00")
Application.OnTime nexttick, "rafraichissement"
End Sub

qui devrais appeler IntE() toute les 30 mn, je dis devrais car en fai t
la sub est exécuter un peu aléatoirement de quelques minutes à 30
minutes

de plus pour arrêter ce scrutateur je me sert de ceci:

Sub arret()
Application.OnTime nexttick, "rafraîchissement", False
End Sub

mais tant que excel est ouvert et ce même ci le classeur est fermé
IntE() continue de s'exécuter malgré tout

auriez vous une idée d'une part pour stabilisé l'intervalle de te mps
entre 2 appel et d'autre part pouvoir arrêter le scrutateur de mani ère
efficace ?

merci




Avatar
papou
cela fonctionne parfaitement
Tant mieux !

encore un grand merci
De rien ;-)


Cordialement
Pascal

"Alain" a écrit dans le message de
news:
Formidable papou

cela fonctionne parfaitement

encore un grand merci


un grand merci

je teste ça tout de suite


Bonjour
La procédure qui doit être lancée toutes les 30 min est IntE, c'est donc
cette macro qui doit être appelée dans la méthode OnTime.
Ensuite, pour arrêter ta méthode Ontime, il faut absolument passer en
variable publique ta donnée NextTick.
Parce que la méthode Ontime est utilisée au niveau application et ne
peut


par conséquent pas être interrompue si le temps programmé n'est pas
connu au


niveau application.
Voici donc ce que devrait donner les quelques modifs : (non testé)
Public NextTick As Double
Sub rafraichissement()
NextTick = Now + TimeValue("00:30:00")
Application.OnTime earliesttime:=NextTick, procedure:="IntE", _
schedule:=True
End Sub
Sub IntE()
'ton code
rafraichissement
End Sub
Sub Arret()
On Error Resume Next
Application.OnTime earliesttime:=NextTick, procedure:="IntE", _
schedule:úlse
End Sub

Cordialement
Pascal

"Alain" a écrit dans le message de
news:
Bonjour le Forum,

voici mon problème, je vais essayer d'être clair,

soit une sub IntE() qui va chercher sur internet des données sur un page
html et ce périodiquement.

à l'ouverture du classeur je lance ceci

Sub rafraichissement()
IntE
nexttick = Now + TimeValue("00:30:00")
Application.OnTime nexttick, "rafraichissement"
End Sub

qui devrais appeler IntE() toute les 30 mn, je dis devrais car en fait
la sub est exécuter un peu aléatoirement de quelques minutes à 30
minutes

de plus pour arrêter ce scrutateur je me sert de ceci:

Sub arret()
Application.OnTime nexttick, "rafraîchissement", False
End Sub

mais tant que excel est ouvert et ce même ci le classeur est fermé
IntE() continue de s'exécuter malgré tout

auriez vous une idée d'une part pour stabilisé l'intervalle de temps
entre 2 appel et d'autre part pouvoir arrêter le scrutateur de manière
efficace ?

merci