[VBA]Répéter une macro automatiquement

Résolu/Fermé
Apolline - 19 juin 2008 à 16:21
Bilow Messages postés 1014 Date d'inscription samedi 21 août 2010 Statut Membre Dernière intervention 2 août 2015 - 2 juin 2011 à 23:46
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

2 réponses

onesdf Messages postés 375 Date d'inscription mercredi 21 mai 2008 Statut Membre Dernière intervention 17 octobre 2008 120
19 juin 2008 à 16:50
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
2
Merci beaucoup beaucoup, sa marche d'enfer (et c''est plus simple que ce que je pensais ^^)

Encore merci
0
au fait Onesdf comment je fais pour l'arreter la macro?
parceque j'aimerais la stopper à 21HOO?

Merci d'avance
0
onesdf Messages postés 375 Date d'inscription mercredi 21 mai 2008 Statut Membre Dernière intervention 17 octobre 2008 120 > Apolline
19 juin 2008 à 19:32
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
0
Apolline > onesdf Messages postés 375 Date d'inscription mercredi 21 mai 2008 Statut Membre Dernière intervention 17 octobre 2008
20 juin 2008 à 08:29
Merci Onesdf ca marche super ;-)
0
DJ FA Messages postés 51 Date d'inscription jeudi 14 décembre 2006 Statut Membre Dernière intervention 1 avril 2024
Modifié par DJ FA le 2/06/2011 à 22:45
Ca date, mais pour 15 minutes ? merci.

C'est ça ?

DansQuinzeMinutes = TimeSerial(Hour(Time), Minute(Time) + 15, Second(Time))
0
Bilow Messages postés 1014 Date d'inscription samedi 21 août 2010 Statut Membre Dernière intervention 2 août 2015 117
2 juin 2011 à 23:46
Oui ;-)
0