Office 365 Actualisation automatique régulière des données

neutralprod

XLDnaute Nouveau
Bonjour tout le monde !

J'ai un fichier .csv que je récupère dans un fichier excel par le biais d'une "connexion à partir d'un fichier texte/csv" et je souhaiterais que cette connexion puisse être actualisée automatiquement toutes les X secondes.
J'ai vu que je peux définir une mise a jour automatique toutes les X minutes mais ce n'est pas assez, il faudrait que je puisse descendre sur des secondes.
Je pense que cela doit être possible avec une macro mais je ne trouve rien sur la toile.

merci d'avance et bonne journée !
 

youky(BJ)

XLDnaute Barbatruc
Bonjour et bienvenu,
Il faut la méthode OnTime voici un exemple qui toutes les 15 secondes exécute la marco Ta_macro

Application.OnTime Now + TimeValue("00:00:15"), "Ta_macro"
Bruno
 

neutralprod

XLDnaute Nouveau
Bonjour et merci pour l'aide.

avec ce code la macro est executée une fois seulement je pense, comment faire pour que cela tourne en boucle permanente ?

VB:
Sub Macro1()
'
' Macro1 Macro
'

    ActiveWorkbook.RefreshAll
    
End Sub


Sub Macro2()
'
' Macro2 Macro
'

    Application.OnTime Now + TimeValue("00:00:05"), "Macro1"

End Sub
 

youky(BJ)

XLDnaute Barbatruc
Sub Macro1()
'ici marco de chargement ou actualisation du .cvs
'blabla et . . .
Application.OnTime Now + TimeValue("00:00:05"), "Macro1"
End Sub
Bruno

ou bien
Sub Macro1()
ActiveWorkbook.RefreshAll
Application.OnTime Now + TimeValue("00:00:05"), "Macro1"
End Sub
Bruno
 
Dernière édition:

neutralprod

XLDnaute Nouveau
Effectivement cela marche bien mieux ainsi, merci beaucoup.
est-il possible de trouver un petit bout de code qui arrête la macro en cliquant simplement sur un bouton que je mettrai dans la fichier excel ?

VB:
Sub Macro1()
'
' Macro1 Macro
'

    ActiveWorkbook.RefreshAll
    Application.OnTime Now + TimeValue("00:00:05"), "Macro1"
    
End Sub
 

eriiiic

XLDnaute Barbatruc
Bonjour à tous,

à mettre dans un module standard
VB:
Dim tMemo

Sub Macro1()
    ActiveWorkbook.RefreshAll
    tMemo = Now + TimeValue("00:00:05")
    Application.OnTime tMemo, "Macro1"
    Debug.Print tMemo
End Sub

Sub stopMacro1()
    Application.OnTime tMemo, "Macro1", , False
End Sub
penser à appeler stopMacro1 également depuis Workbook_BeforeClose() si tu ne veux pas que ton fichier se rouvre.
eric
 

Discussions similaires


Haut Bas