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 :

Requête web : QueryTables.Add(Connection:="URL; . . . tourne pas à pas mais plante en automatique


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Nouveau candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Mars 2017
    Messages
    1
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mars 2017
    Messages : 1
    Par défaut Requête web : QueryTables.Add(Connection:="URL; . . . tourne pas à pas mais plante en automatique
    Bonjour à tous,

    j'ai adapté une macro trouvé sur le net pour récupérer des histo d'actions sur google finance.
    Comme j'ai besoin de mettre à jour un grand nombre d'actions, j'ai fait une boucle qui tourne sur une liste définie dans un onglet.
    La requête est la suivante :
    --------
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    With DataSheet.QueryTables.Add(Connection:="URL;" & qurl, Destination:=DataSheet.Range("a1"))
            .BackgroundQuery = True
            .TablesOnlyFromHTML = False
            .Refresh BackgroundQuery:=False
            .SaveData = True
    End With
    ------
    Sans rentrer dans les détails du reste du code, mon problème est que lorsque j'exécute la macro pas à pas, tout fonctionne parfaitement. Je récupère, je colle dans ma feuille, je boucle, je récupère... parfait !
    En revanche, en exécution automatique, ça freeze XL que je ne peux plus récupérer. Je dois le killer avec le gestionnaire.
    De la même façon, si je mets un stop n'importe où au milieu de la boucle, en exécution automatique, tout va bien. Le code s'arrête sur le stop, je relance, ça boucle s'arrête à nouveau sur le stop.... indéfiniment.
    Je supprime le stop.... ça plante.
    J'ai pensé que le stop ménageait une pause nécessaire. J'ai tenté de mettre un wait de quelques secondes équivalent à la pause manuelle mais non. Idem avec une fonction sleep.....
    Est-ce un problème de requête qu'il faut fermer d'une certaine façon ou libérer une variable ou objet.. ?

    Bref, j'ai besoin de vos lumières les experts !!

    Merci de votre aide

  2. #2
    Expert confirmé
    Homme Profil pro
    retraité
    Inscrit en
    Juin 2012
    Messages
    3 415
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : retraité
    Secteur : Associations - ONG

    Informations forums :
    Inscription : Juin 2012
    Messages : 3 415
    Par défaut
    Bonjour,

    Sur ma machine, le code donné fonctionne et ma boucle fonctionne.
    Une suggestion, placer l'instruction suivante après le End With
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Application.StatusBar = "En cours: " & qurl
    cela permettra au moins de voir si la collecte des données avance.

    Cordialement.

Discussions similaires

  1. [XL-2010] QueryTables.add(Connection:=URL , etc
    Par Lucas42 dans le forum Macros et VBA Excel
    Réponses: 0
    Dernier message: 17/04/2015, 14h41
  2. Réponses: 5
    Dernier message: 13/08/2014, 10h21
  3. [XL-2013] Comment optimiser les données web avec QueryTables.Add ? (freeze+lenteur)
    Par Dan.exe dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 02/02/2014, 14h12
  4. [XL-2007] Import web via QueryTables.Add
    Par ELikero dans le forum Macros et VBA Excel
    Réponses: 5
    Dernier message: 01/09/2013, 22h43
  5. Requêtes web: comment faire ?
    Par requin01 dans le forum Décisions SGBD
    Réponses: 3
    Dernier message: 21/05/2006, 20h08

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