IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Macros et VBA Excel Discussion :

Vider le cache excel des données web pour réactualisation ? [Toutes versions]


Sujet :

Macros et VBA Excel

  1. #1
    Membre confirmé
    Homme Profil pro
    Inscrit en
    Janvier 2014
    Messages
    93
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Janvier 2014
    Messages : 93
    Par défaut Vider le cache excel des données web pour réactualisation ?
    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

  2. #2
    Expert éminent
    Avatar de Marc-L
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Avril 2013
    Messages
    9 468
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2013
    Messages : 9 468
    Par défaut

    Bonjour, bonjour,

    lors de ta première discussion, je t'ai indiqué dès mon premier message un lien vers une autre discussion comprenant déjà l'exemple de
    Patrick - le même qu'il t'a donné plus tard ! - et le mien avec leur numéro de post respectif dans mon message suivant …

    En suivant donc mon exemple, pas de souci car ce n'est pas le même accès à la page (au niveau de l'ouverture) …

  3. #3
    Membre confirmé
    Homme Profil pro
    Inscrit en
    Janvier 2014
    Messages
    93
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Janvier 2014
    Messages : 93
    Par défaut
    Est-il possible de rajouter une ligne quelque part dans ce code ci ou le sub qui va avec afin de régler le problème?

    Merci

  4. #4
    Inactif  

    Homme Profil pro
    cuisiniste
    Inscrit en
    Avril 2009
    Messages
    15 374
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : cuisiniste
    Secteur : Bâtiment

    Informations forums :
    Inscription : Avril 2009
    Messages : 15 374
    Billets dans le blog
    8
    Par défaut re
    Bonjour

    j'en aurais entendu des drôles

    donc si j'ai bien compris ta remarque les fois suivantes ou la fonction va chercher les données elle va chercher dans le cache et non plus sur la feuille??????????????



    tu n'y est pas du tout

    a tu déjà entendu parler du prefecth de Windows

    allez je te laisse faire une petite recherche
    tu comprendra tout seul
    mes fichiers dans les contributions:
    mail avec CDO en vba et mail avec CDO en vbs dans un HTA
    survol des bouton dans userform
    prendre un cliché d'un range

    si ton problème est résolu n'oublie pas de pointer : : ça peut servir aux autres
    et n'oublie pas de voter

  5. #5
    Membre confirmé
    Homme Profil pro
    Inscrit en
    Janvier 2014
    Messages
    93
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Janvier 2014
    Messages : 93
    Par défaut
    ce n'étais qu'une supposition

    je vais voir cela, merci de ton aide

    même en désactivant ça change rien à part ralentir le pc et en supprimant tous les fichiers du dossier, rien non plus

  6. #6
    Inactif  

    Homme Profil pro
    cuisiniste
    Inscrit en
    Avril 2009
    Messages
    15 374
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : cuisiniste
    Secteur : Bâtiment

    Informations forums :
    Inscription : Avril 2009
    Messages : 15 374
    Billets dans le blog
    8
    Par défaut re
    essaie de faire un "end" dans ton code

    brutal mais ca permettrait de voir si la mémoire ne de saturerais pas
    car ici comme on se sert de variable string qui peuvent comporter un certain nombre de ligne (tout le codesource de la page )
    il est possible que sa ne se vide pas
    dans ce cas la vide toute les variables a la fin du code
    il est vrai que dans mes exemples je ne le fait pas toujours c'est un tord je sais
    mes fichiers dans les contributions:
    mail avec CDO en vba et mail avec CDO en vbs dans un HTA
    survol des bouton dans userform
    prendre un cliché d'un range

    si ton problème est résolu n'oublie pas de pointer : : ça peut servir aux autres
    et n'oublie pas de voter

  7. #7
    Expert éminent
    Avatar de Marc-L
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Avril 2013
    Messages
    9 468
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2013
    Messages : 9 468
    Par défaut
    Citation Envoyé par Dan.exe Voir le message
    rien non plus
    Et pourtant tu as la solution sous le coude depuis le 31 Janvier ‼

    Suffit juste de lire l'exemple de la méthode d'ouverture de Patrick (avec laquelle récemment j'ai eu le même souci)
    et celui de la mienne, et ce, peu importe la librairie !

    Quand cela concerne le cache, ce n'est pas un problème de variable …

    Qui plus est c'est aussi expliqué dans le lien du tutoriel que je t'ai aussi indiqué dès mon premier message ‼

    __________________________________________________________________________________________
    Lire, c'est pourtant s'investir !

  8. #8
    Inactif  

    Homme Profil pro
    cuisiniste
    Inscrit en
    Avril 2009
    Messages
    15 374
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : cuisiniste
    Secteur : Bâtiment

    Informations forums :
    Inscription : Avril 2009
    Messages : 15 374
    Billets dans le blog
    8
    Par défaut re
    Salut Marc L

    c'est quoi le lien de la discutions déjà car il en ouvre tellement en si peu de temps

    je suis curieux moi aussi

    je vais faire une recherche sur ce sujet en tout cas en ce qui me concerne
    je viens de faire un essai 20 fois d'affilé et je n'es pas remarqué une différence suffisamment importante pour m'en inquiéter
    mais ca reste intéressant de le savoir, histoire d'optimiser cette petite fonction bien pratique

    Au plaisir
    mes fichiers dans les contributions:
    mail avec CDO en vba et mail avec CDO en vbs dans un HTA
    survol des bouton dans userform
    prendre un cliché d'un range

    si ton problème est résolu n'oublie pas de pointer : : ça peut servir aux autres
    et n'oublie pas de voter

  9. #9
    Membre confirmé
    Homme Profil pro
    Inscrit en
    Janvier 2014
    Messages
    93
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Janvier 2014
    Messages : 93
    Par défaut
    Oui Marc je sais mais j'ai pas le niveau pour comprendre ton code et encore moins pour l'adapter à ce que j'ai déjà

    Voici le lien donné par Marc, concernant le mix.

    J'ai essayé le End sans résultat. J'ai pas beaucoup de données à actualiser donc ça ne peut saturer la mémoire.

    J'ai essayé dans un nouveau classeur avec une seule donnée, modifiée par mes soins après la première actualisation, sans résultat ou plutôt le même, la donnée n'est pas actualisée lors de la seconde actualisation, excel va dans une copie du code source de la page web qu'il à mit je ne sais où dans le disque dur de l'ordinateur, dans la mémoire vive ou peut être dans la cinquième dimension lors de la première actualisation.

    Merci encore

  10. #10
    Inactif  

    Homme Profil pro
    cuisiniste
    Inscrit en
    Avril 2009
    Messages
    15 374
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : cuisiniste
    Secteur : Bâtiment

    Informations forums :
    Inscription : Avril 2009
    Messages : 15 374
    Billets dans le blog
    8
    Par défaut re
    essaie
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Set Lapage_en_HTML =nothing
    a la fin de ton code
    mes fichiers dans les contributions:
    mail avec CDO en vba et mail avec CDO en vbs dans un HTA
    survol des bouton dans userform
    prendre un cliché d'un range

    si ton problème est résolu n'oublie pas de pointer : : ça peut servir aux autres
    et n'oublie pas de voter

  11. #11
    Expert éminent
    Avatar de Marc-L
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Avril 2013
    Messages
    9 468
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2013
    Messages : 9 468
    Par défaut
    @Dan : et dans mon message suivant du 1er Février à 11h13 :
    Citation Envoyé par Marc-L Voir le message
    Dans l'exemple, voir les posts #28 & #33.
    Cela n'en est même pas au stade de la compréhension mais à celui d'une simple lecture comparative !

    Et je sais pertinemment que tu ne l'as pas fait car tu as ouvert une nouvelle discussion en doublon
    dans laquelle Patrick t'as apporté sa façon de procéder sur un plateau mais exactement la même
    que celle que je t'avais déjà indiquée et pour cause vu que c'était déjà la sienne ‼

    Donc il suffit de comparer - je n'évoque pas comprendre ! - l'ouverture de sa méthode dans le post #28
    vis à vis de la mienne dans le post #33 … (cf ligne Open)

    Et pour comprendre, c'est expliqué dans le premier lien, celui du tutoriel, noir sur blanc dans le chapitre 5-D-1 …

    Non Patrick, ce n'est pas un problème de variable mais bien de cache, Dan a raison et pour cause, cf chapitre 5-D-1 !

  12. #12
    Membre confirmé
    Homme Profil pro
    Inscrit en
    Janvier 2014
    Messages
    93
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Janvier 2014
    Messages : 93
    Par défaut
    Set Lapage_en_HTML =nothing ne donne rien

    Je regarde le open

    Mon code de départ

    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
    Celui de Patrick

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    Option Explicit
    Dim Destination As String  'variable pour le chemin complet du fichier de destination
    Dim l_URL As String        ' variable pour le lien de la page html
    Dim Lapage_en_HTML         'variable pour l'object "Microsoft.XMLHTTP"( l'object XML)
    Dim cel As Range
    Public Function GetCodeSource(sURL, Optional au_format_text As Boolean = "false")
        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
          'exemple de code source End of placement</td><td>03/31/2011
         If InStr(Lapage_en_HTML.ResponseText, "End of placement") Then
         GetCodeSource = Split(Split(Lapage_en_HTML.ResponseText, "End of placement</td><td>")(1), "<")(0)
         Else
         GetCodeSource = "pas de date"
         End If
    End Function
    et le tien

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    Private Declare Function InternetCheckConnectionA Lib "Wininet" (ByVal SITE$, ByVal one&, _
                                                                     ByVal zero&) As Boolean
     
    Function WebOK(Optional ByVal URL$ = "http://www.msn.com") As Boolean
                P& = InStr(9, URL, "/"):  If P Then URL = Left$(URL, P)
             WebOK = InternetCheckConnectionA(URL, 1, 0)
    End Function
     
     
    Function WebExtract$(PAGE$, ByVal AFTER$)
        With CreateObject("MSXML2.XMLHTTP")     ' With CreateObject("Microsoft.XMLHTTP")
            .Open "POST", PAGE, False           '     .Open "GET", PAGE, False
            .Send
     
            If .Status = 200 Then If InStr(.responseText, AFTER) Then _
             WebExtract = Split(Split(.responseText, AFTER)(1), "<")(0)
        End With
    End Function

  13. #13
    Inactif  

    Homme Profil pro
    cuisiniste
    Inscrit en
    Avril 2009
    Messages
    15 374
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : cuisiniste
    Secteur : Bâtiment

    Informations forums :
    Inscription : Avril 2009
    Messages : 15 374
    Billets dans le blog
    8
    Par défaut re
    hein .......
    fait une recherche sur
    Application.MemoryUsed
    Application.MemoryFree
    Application.MemoryTotal
    mes fichiers dans les contributions:
    mail avec CDO en vba et mail avec CDO en vbs dans un HTA
    survol des bouton dans userform
    prendre un cliché d'un range

    si ton problème est résolu n'oublie pas de pointer : : ça peut servir aux autres
    et n'oublie pas de voter

  14. #14
    Membre confirmé
    Homme Profil pro
    Inscrit en
    Janvier 2014
    Messages
    93
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Janvier 2014
    Messages : 93
    Par défaut
    Oui patrick

    j'ai déjà trouvé ces codes avant de lancer cette discussion mais sans résultat, peut être que je ne l'ai pas mis au bon endroit, je vais réessayer

    j'abandonne pour aujourd'hui

    @demain

  15. #15
    Inactif  

    Homme Profil pro
    cuisiniste
    Inscrit en
    Avril 2009
    Messages
    15 374
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : cuisiniste
    Secteur : Bâtiment

    Informations forums :
    Inscription : Avril 2009
    Messages : 15 374
    Billets dans le blog
    8
    Par défaut re
    et le petit poucet Y sème y sème

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    'vider les temporaires
    Sub Clear_Temp_Files()
    Shell "RunDll32.exe InetCpl.cpl,ClearMyTracksByProcess 8 "
    End Sub
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    'vider les Cookies
    Sub Clear_Cookies()
    Shell "RunDll32.exe InetCpl.cpl,ClearMyTracksByProcess 2"
    End Sub
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    'vider l'historique
    Sub Clear_History()
    Shell "RunDll32.exe InetCpl.cpl,ClearMyTracksByProcess 1"
    End Sub
    Sub Clear_Form_Data()
    Shell "RunDll32.exe InetCpl.cpl,ClearMyTracksByProcess 16"
    End Sub


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    ' effacer tout les mot de passe
    Sub Clear_Saved_Passwords()
    Shell "RunDll32.exe InetCpl.cpl,ClearMyTracksByProcess 32"
    End Sub
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    'tout vider
    Sub Clear_All()
    Shell "RunDll32.exe InetCpl.cpl,ClearMyTracksByProcess 255"
    End Sub


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Sub Clear_Clear_Add_ons_Settings()
    Shell "RunDll32.exe InetCpl.cpl,ClearMyTracksByProcess 4351"
    End Sub
    ect..... ect....
    mes fichiers dans les contributions:
    mail avec CDO en vba et mail avec CDO en vbs dans un HTA
    survol des bouton dans userform
    prendre un cliché d'un range

    si ton problème est résolu n'oublie pas de pointer : : ça peut servir aux autres
    et n'oublie pas de voter

  16. #16
    Expert éminent
    Avatar de Marc-L
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Avril 2013
    Messages
    9 468
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2013
    Messages : 9 468
    Par défaut

    Dan,

    comme expliqué en clair et sans décodeur dans le chapitre 5-D-1 du tutoriel en lien dans ta première discussion,
    et sinon rien qu'en comparant l'ouverture de la méthode de Patrick (Open) en ligne n°8
    et de la mienne en ligne n°12 …

    Et pire encore, rien qu'en lisant la mienne, tout y est avec celle de Patrick en commentaire, m'enfin ‼
    Scrogneugneu ‼


    Quant au p'tit poucet, il a dû se tromper de champignons !

    __________________________________________________________________________________________
    - A ton avis, quel est le plus grand mal de notre époque : l'ignorance ou l'indifférence ?
    - J' sais pas et j' m'en fous !


  17. #17
    Membre confirmé
    Homme Profil pro
    Inscrit en
    Janvier 2014
    Messages
    93
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Janvier 2014
    Messages : 93
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Shell "RunDll32.exe InetCpl.cpl,ClearMyTracksByProcess 255"
    Qu'est ce que c'est magique ! ho que c'est bon !

    J'ai pas tester précisément c'est quelle partie, je préfère tout supprimer. Il s'agissait bien de vider un cache ! Il y a une boite de dialogue qui vient pendant quelques secondes mais c'est pas grave .

    Enfin un problème totalement résolu !

    Merci Patriiiiiiiick !

    PS pour Marc: Scrogneugneu toi même t'a qu'a me donner la modification clairement, c'est pas compliqué, au lieu de tourner en rond sans fin, j'ai essayé des trucs qui n'ont pas marché, ça à l'air peut être super simple pour toi mais pas pour moi

  18. #18
    Expert éminent
    Avatar de Marc-L
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Avril 2013
    Messages
    9 468
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2013
    Messages : 9 468
    Par défaut

    Suffit juste de lire ma ligne 12, trop compliqué de lire une seule ligne de code, bobo à la tête ? M'enfin ‼

    Sans compter l'explication limpide dans le chapitre du tutoriel, même pas besoin d'API ‼

    J'ai pourtant bien indiqué que j'ai eu récemment le même souci en ouvrant une page Web comme Patrick
    (dommage pour un applicatif financier dont le site se met à jour chaque minute !)
    et qu'avec ma méthode (cf ligne 12 ! ) - enfin celle indiquée dans le tutoriel - plus ce souci.

    Si tu préfères alourdir ton code, no problemo !


    __________________________________________________________________________________________
    Quand on est mort, on ne le sait pas, c'est pour les autres que c'est diificile … Quand on est con, c'est pareil !

  19. #19
    Inactif  

    Homme Profil pro
    cuisiniste
    Inscrit en
    Avril 2009
    Messages
    15 374
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : cuisiniste
    Secteur : Bâtiment

    Informations forums :
    Inscription : Avril 2009
    Messages : 15 374
    Billets dans le blog
    8
    Par défaut re
    Bonjour

    allons allons Marc L


    il est vrai que certaine questions peuvent paraitre stupide et meme parfois répétée
    mais je n'ai pas oublié il y a 5 ans je posais des questions pour ne pas en comprendre les réponses
    en tout cas je fait une mise a jour de mes connaissances a chaque fois
    je pense que c'est comme ca qu'il faut le prendre

    le pauvre Dan tout petit bébé développeur
    mes fichiers dans les contributions:
    mail avec CDO en vba et mail avec CDO en vbs dans un HTA
    survol des bouton dans userform
    prendre un cliché d'un range

    si ton problème est résolu n'oublie pas de pointer : : ça peut servir aux autres
    et n'oublie pas de voter

  20. #20
    Membre averti
    Profil pro
    Inscrit en
    Mai 2003
    Messages
    42
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2003
    Messages : 42
    Par défaut
    Je sais... je sais... je déterre une discussion vielle de 5 ans marquée "résolue"

    Mais quand on Google "excel CreateObject cache" 5 ans plus tard on tombe toujours dessus direct.
    Et comme pour les 3 protagonistes de la discussion, le problème qu'ils ont rencontré est toujours d'actualité. J'ai moi même rencontré le même que Marc-L...
    ...j'ai eu récemment le même souci en ouvrant une page Web comme Patrick
    (dommage pour un applicatif financier dont le site se met à jour chaque minute !)
    Tout ça pour dire que la prise de bec était amusante, mais c'est dommage que la conclusion finisse un peu en queue de poisson et que les 2 "experts" ne se soient pas mis d'accord sur la meilleur solution.
    Car pour dire les choses clairement, à ce problème de cache il y a eu 2 réponses :
    • Celle de patricktoulon qui consiste à faire exécuter une DLL d'IE pour vider le cache...
      Code : Sélectionner tout - Visualiser dans une fenêtre à part
      Shell "RunDll32.exe InetCpl.cpl,ClearMyTracksByProcess x"
      Ce qui fait un peu Grosse Bertha pour tuer un moustique et entraine l'apparition furtive d'une fenêtre de commande.
    • Et celle de Marc-L qui consiste à utiliser le paramètre POST plutôt que GET de la fonction Open...
      https://arkham46.developpez.com/arti...=Page_4#LV-D-1
      Utilisez "POST" en premier argument pour être sûr de ne pas utiliser le cache et récupérer la dernière version du serveur.
      Remplacez "POST" par "GET" pour utiliser le cache.

    Donc Dan.exe furieux, semble s'être arrêté à la réponse de patricktoulon, mais personnellement j'ai testé celle de Marc-L, elle marche nickel et "me semble" bien plus clean que de vider tout un cache, des mots de passe et je ne sais quoi d'autre.

    Donc première conclusion pour ceux qui débarqueraient sur ce sujet par hasard, il y a bien 2 solutions, qui marchent tous les 2 et c'est à vous de faire votre choix.
    Personnellement, je préfère passer de GET à POST.

    Enfin deuxième info pour ceux qui choisiraient cette seconde option, je suis tombé sur un cas où la fonction Open en utilisant POST est refusée par le site web. En l’occurrence Boursorama.com. Dans ce cas on obtient une page d'erreur du site...
    Oops! An Error Occurred
    The server returned a "405 Method Not Allowed".
    MAIS... dans le cas spécifique de ce site web, l'utilisation de GET fonctionne parfaitement, sans effet de cache ! A chaque exécution on obtient bien la toute dernière version de la page.

    Donc la solution semble être POST par défaut et GET quand POST ne fonctionne pas, en vérifiant dans ce cas s'il y a un effet de cache ou non.
    Et si vraiment POST est interdit et GET ramène le cache, alors... feu à volonté sur le cache, la Grosse Bertha ClearMyTracksByProcess est de retour !

    Voilà.
    On peut maintenant laisser ce sujet se rendormir doucement, il est un peu mieux documenté pour les futurs touristes comme moi

    P.S. : amusant aussi de voir le profil de patricktoulon marqué "Débutant" avec 15 426 messages au compteur et 13 079 points ! C'est le débutant le plus productif et reconnu que je connaisse

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Macro pour importer des données web avec plusieurs variables
    Par lajim dans le forum Macros et VBA Excel
    Réponses: 0
    Dernier message: 17/04/2015, 15h46
  2. Choix d'une méthode pour extraire des données web
    Par Serphone dans le forum Général Conception Web
    Réponses: 6
    Dernier message: 26/06/2012, 10h25
  3. [Toutes versions] Extraire des données word pour les insérer sous excel
    Par progfou dans le forum Word
    Réponses: 23
    Dernier message: 04/05/2009, 14h23
  4. importer des données web sur excel
    Par irouni dans le forum Excel
    Réponses: 3
    Dernier message: 18/12/2007, 11h12
  5. [VBA EXCEL] Importation données Web
    Par pwrollez dans le forum Macros et VBA Excel
    Réponses: 9
    Dernier message: 23/02/2007, 08h27

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo