Bonjour à tous !

J'utilise une fonction (ci dessous) qui va rechercher des données sur internet, généreusement donné par PatrickToulon et qui fonctionne très bien, du moins lors de la première actualisation.

Je m'explique, à la première actualisation les données sont bien recherchées sur le web, excel se connecte et va prendre la dernière version du code source de la page. Le hic, si on lance une seconde actualisation, alors excel ira dans un cache (sur l'ordinateur ou dans le fichier?) et n'ira pas rechercher la dernière version de la donnée sur le web.

Une preuve est la vitesse incroyable de cette seconde actualisation, mais aussi un test fait par moi même en modifiant un code source et en vérifiant si la donnée change dans ma page excel.

Le seul moyen pour l'instant afin de remédier au problème et avoir des données neuves, est de fermer et de ré-ouvrir le classeur et de réactualiser, ce qui n'est pas très pratique si l'on veut par exemple faire une actualisation automatique toutes les x heures.

Merci pour tout !


Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
Dim Destination As String  'variable pour le chemin complet du fichier de destination
Dim Lapage_en_HTML         'variable pour l'object "Microsoft.XMLHTTP"( l'object XML)
Dim url As String, page As String
 
Public Function GetCodeSource(sURL)
    Set Lapage_en_HTML = CreateObject("Microsoft.XMLHTTP")    'instancie l'object
    Lapage_en_HTML.Open "GET", sURL    'ouvre l'url dans l'object
    Lapage_en_HTML.Send
    Do: DoEvents: Loop While Lapage_en_HTML.ReadyState <> 4    'attendre que la page soit chargée
    GetCodeSource = Lapage_en_HTML.ResponseText
End Function