requete sur le WEB

Anonyme
2014-10-28T10:19:07+00:00

Bonjour,

J'utilise cette macro VBA en Windows7 et Excel 2010 depuis plusieurs années pour consulter un site sur le WEB et importer des données dans une application Excel.....  depuis 15 jours elle ne fonctionne plus... et reste bloquée sur l'instruction en gras, j'ai essayé de faire des requêtes par "données/ requête sur le WEB"sans plus de succès....

J'ai absolument besoin de trouver une solution.....   qui peut m'aider ? help !!!!!

A l'avance merci,

Sub dax()

    Sheets("Base").Activate

Application.ScreenUpdating = False

    Application.Calculation = xlCalculationManual

    Sheets("tempo").Activate

Dim Tablo() As Variant, C As Variant, Cible As Object

Dim Tempo As Worksheet, Qaddress As String

Dim URL1 As String, BaseUrl As String, Quoi As String

Dim Y As Long, Ky&, Start&

Quoi = "Vente"

Application.Calculation = xlCalculationManual

BaseUrl = "URL;http://www.bloomberg.com/quote/DAX:IND"

Set Tempo = Feuil2

With Feuil2

.Activate

.UsedRange.Clear

  URL1 = BaseUrl & C

  With Tempo.QueryTables.Add(Connection:=URL1, Destination:=Tempo.Range("A2"))

    .BackgroundQuery = False

    .WebFormatting = xlWebFormattingNone

    .WebTables = "28"

    .TablesOnlyFromHTML = False

    .RefreshOnFileOpen = False

    .Refresh BackgroundQuery:=False

    .SaveData = True

     Set Cible = Range("A1:CQ9000").Find(Quoi, LookIn:=xlValues)

  End With

End With..... etc.....pour chercher et formater le cours recherché....

Microsoft 365 et Office | Excel | Pour la maison | Windows

Question verrouillée. Cette question a été migrée à partir de la Communauté Support Microsoft. Vous pouvez voter pour indiquer si elle est utile, mais vous ne pouvez pas ajouter de commentaires ou de réponses ni suivre la question.

0 commentaires Aucun commentaire
Réponse acceptée par l’auteur de la question
Anonyme
2014-10-28T20:05:55+00:00

Si la suggestion de Daniel ne répond pas à tes attentes,

Explique ce que tu fais dans ce classeur.

Est-ce que tu répètes toujours la même macro?

Si tu veux rafraîchir les données du QueryTable en utilisant toujours la

même requête, c'est ligne de code est suffisante... Adapte le nom de la feuille

Feuil2.QueryTables(1).Refresh BackgroundQuery:=False

À chaque fois que tu exécutes la macro, une connexion s'ajoute au classeur et

aussi une plage nommée du nom du QueryTable. La procédure suivante supprime

toutes les connections du classeur et les plages nommées. Après quoi, tu peux

employer ta macro si c'est cela que tu préfères...

'-------------------------------------------------

Sub test()

Dim Nb As Long, N As Name

'Suppression de toutes les connections du classeur

With ThisWorkbook.Connections

    Nb = .Count

    For a = 1 To Nb

        .Item(a).Delete

    Next

End With

'Suppression de tous les noms du classeur.

For Each N In ThisWorkbook.Names

    N.Delete

Next

End Sub

'-------------------------------------------------

Cette réponse a-t-elle été utile ?

0 commentaires Aucun commentaire
Réponse acceptée par l’auteur de la question
DanielCo 107.1K Points de réputation
2014-10-28T19:30:35+00:00

Essaie donc, au lieu de recréer ta connexion :

ActiveWorkbook.Connections("Connexion").Refresh

en reprenant le nom de ta connexion. Sinon, essaie aussi avec :

.Refresh

au lieu de :

.Refresh BackgroundQuery:=False

Daniel

Cette réponse a-t-elle été utile ?

0 commentaires Aucun commentaire

29 réponses supplémentaires

  1. DanielCo 107.1K Points de réputation
    2014-10-30T16:15:15+00:00

    Pour dow, il semble que le lien ne soit pas le bon.

    Daniel

    Cette réponse a-t-elle été utile ?

    0 commentaires Aucun commentaire
  2. Anonyme
    2014-10-30T15:39:13+00:00

    Bonjour,

    La macro pour supprimer toutes les connexions et toutes les plages nommées

    '---------------------------------

    Sub clea()

    Dim Elt As Variant, N As Name

    For Each Elt In ThisWorkbook.Connections

      Elt.Delete

    Next

    For Each N In ThisWorkbook.Names

      N.Delete

    Next

    End Sub

    '---------------------------------

    Par exemple, pour récupérer la totalité d'une page Web, ce code ne prend que

    quelques instants pour s'exécuter

    '-----------------------------------

    Sub Télécharger_Page_Web()

    Dim AdrURL As String, Hpl As String

    'L'adresse de la page Web à télécharger

    Hpl = "http://www.msn.com/en-ca/"

      AdrURL = "URL;" & Hpl

      'le paramètre False de la méthode Refresh permet

      'de ne rendre la main à Excel que lorsque les données

      'ont été entièrement transférées dans la feuille de calcul

      ActiveSheet.QueryTables.Add(Connection:=AdrURL, _

            Destination:=Range("A1")).Refresh False      

    End Sub

    '-----------------------------------

    Dans le fichier que tu as mis en ligne et il en va de même pour celui de Daniel,

    je n'ai pas réussi à exécuter la macro  "Sub dow()" du module1

    J'ai fait un autre test.

    Exemple : Barre des menus du ruban / Données / Section : Données externes /

                    commande : Web

                    Tu copies l'adresse Web dont tu veux extraire les données

                    Si le site contient des tableaux, tu peux sélectionner celui que tu veux importer

                    et tu cliques sur le bouton "Importer".

                    Tu obtiens tout le texte du site ou du tableau.

    Si je fais la même chose, mais en utilisant l'adresse suivante, même après une éternité, le téléchargement ne s'opère pas.

    https://boerse.dab-bank.de/maerkte-kurse/indizes/indizes-suche/id_324977.html?idNotation=324977&factsheetTab=overview

    Est-ce à cause d'un problème avec le site internet lui-même???

    Cette réponse a-t-elle été utile ?

    0 commentaires Aucun commentaire
  3. DanielCo 107.1K Points de réputation
    2014-10-30T15:17:40+00:00

    Pas étonnant, tu as presque 1000 connexions. Je les ai toutes supprimées et je n'ai conservé que Bloomberg. J'ai modifié (uniquement) cette macro en faisant une simple actualisation.

    Télécharge ton classeur :

    http://1drv.ms/1tFGFUF

    Daniel

    Cette réponse a-t-elle été utile ?

    0 commentaires Aucun commentaire