Posez votre question Signaler

[VBA]Répéter une macro automatiquement [Résolu]

Apolline - Dernière réponse le 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
Lire la suite 

[VBA]Répéter une macro automatiquement »

7 réponses
Réponse
+0
moins plus
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
Apolline - 19 juin 2008 à 18:19
au fait Onesdf comment je fais pour l'arreter la macro?
parceque j'aimerais la stopper à 21HOO?

Merci d'avance
onesdf- 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
Apolline - 20 juin 2008 à 08:29
Merci Onesdf ca marche super ;-)
Ajouter un commentaire
Réponse
+0
moins plus
Ca date, mais pour 15 minutes ? merci.

C'est ça ?

DansQuinzeMinutes = TimeSerial(Hour(Time), Minute(Time) + 15, Second(Time))
Bilow- 2 juin 2011 à 23:46
Oui ;-)
Ajouter un commentaire
Ce document intitulé « [VBA]Répéter une macro automatiquement » issu de CommentCaMarche (www.commentcamarche.net) est mis à disposition sous les termes de la licence Creative Commons. Vous pouvez copier, modifier des copies de cette page, dans les conditions fixées par la licence, tant que cette note apparaît clairement.
Dossier à la une
Passage au tout numérique : quel coût pour les particuliers ?