Rechercher : dans
Par :

[VBA]Répéter une macro automatiquement

Dernière réponse le 20 jun 2008 à 08:29:01 Apolline, le 19 jun 2008 à 16:21:37 
 Signaler ce message aux modérateurs

Bonjour,

je voudrais qu'une macro (je suis sous excel) se lance toutes les 30 sec, je crois qu'i faut faire une boucle mais je ne sais pas comment la faire :-(

voici le code de ma macro que je voudrais répéter

Sub RafraichissementGraphe()

Application.OnTime TimeSerial(0, 0, 10), "EnregistrerEnPageWeb"

End Sub


Merci d'avance

1

onesdf, le 19 jun 2008 à 16:50:21

Salut

L'application OnTime permet de lancer une procédure à une heure donnée.
Pour répéter une action à intervalles donnés, il ne faut donc pas que tu appelles ta procédure "EnregistrerEnPageWeb", mais que tu à nouveau ta procédure RafraichissementGraphe de manière à boucler.

Niveau code ça donnerai ça :

Sub RafraichissementGraphe()
    ' Définit l'intervalle avec l'heure actuelle + trente secondes
    DansTrenteSecondes = TimeSerial(Hour(Time), Minute(Time), Second(Time) + 30)
    ' Appel récursif de la fonction RafraichissementGraphe
    Application.OnTime DansTrenteSecondes, "RafraichissementGraphe"
    ' Appel de la fonction EnregistrerEnPageWeb
    Call EnregistrerEnPageWeb
End Sub

Répondre à onesdf

2

Apolline, le 19 jun 2008 à 17:02:12

Merci beaucoup beaucoup, sa marche d'enfer (et c''est plus simple que ce que je pensais ^^)

Encore merci

Répondre à Apolline

3

Apolline, le 19 jun 2008 à 18:19:43

Au fait Onesdf comment je fais pour l'arreter la macro?
parceque j'aimerais la stopper à 21HOO?

Merci d'avance

Répondre à Apolline

4

onesdf, le 19 jun 2008 à 19:32:12

Avec un test :

Sub RafraichissementGraphe()
    ' Définit l'intervalle avec l'heure actuelle + trente secondes
    DansTrenteSecondes = TimeSerial(Hour(Time), Minute(Time), Second(Time) + 30)
    If DansTrenteSecondes < "21:00:00" Then
        ' Appel récursif de la fonction RafraichissementGraphe
        Application.OnTime DansTrenteSecondes, "RafraichissementGraphe"
        ' Appel de la fonction EnregistrerEnPageWeb
        Call EnregistrerEnPageWeb
    End If
End Sub

Répondre à onesdf

5

 Apolline, le 20 jun 2008 à 08:29:01

Merci Onesdf ca marche super ;-)

Répondre à Apolline