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 :

QueryTable.Refresh : Excel ne répond pas


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Expert confirmé
    Homme Profil pro
    aucune
    Inscrit en
    Septembre 2011
    Messages
    8 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : aucune

    Informations forums :
    Inscription : Septembre 2011
    Messages : 8 208
    Par défaut QueryTable.Refresh : Excel ne répond pas
    Bonjour,

    Je récupère la liste des joueurs de tennis sur un site web. Ca représente un certains nombre de requêtes (78 pays et un nombre variable de pages par pays.
    D'une façon presque systématique, Excel cesse de répondre. J'ai essayé de faire une boucle sur le "Refresh".. J'ai aussi affiché la page et le nombre d'essais dans la barre d'état. Ca fonctionne... tant que l'exécution est normale.
    Est-il possible que l'erreur soit liée à Windows 10 ? Ca semble coïncider, mais on ne prête qu'aux riches... Je poste ci-dessous la partie litigieuse du code :

    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
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
            On Error Resume Next
            For Each Item In Array(Plage1, Plage2, Plage3)
              Set Plage = Item
              For Each C In Plage
    '              Debug.Print C.Value
      '            If C.Row = 16 Then Stop
                  For I = 1 To 150
     
                      .QueryTables(1).Delete
                      Ligne = .[A:D].Find("*", , , , xlByRows, xlPrevious).Offset(1).Row
                      If Ligne = 2 Then Ligne = 1
                      Set Desti = .Range("A" & Ligne + 1)
                      Txt = "URL;http://www.tennisexplorer.com/list-players/?page=" & I & "&country=" & _
                          LCase(Application.Trim(C.Value)) & "&order=name"
                      Set Qt = .QueryTables _
                       .Add(Connection:=Txt, _
                       Destination:=Desti)
                      With Qt
                       Rep = False
                       Ctr1 = 0
                       .Connection = Txt
                       .Destination = Desti
    '                   .Name = "ListeJoueurs"
                       .WebFormatting = xlNone
                       .WebSelectionType = xlSpecifiedTables
                       .BackgroundQuery = False
                       .WebTables = "2"
                       Do Until Rep = True
                        Rep = .Refresh
                        DoEvents
                        Ctr1 = Ctr1 + 1
    '                    If Ctr1 > 1 Then Application.Wait Now + TimeValue("0:0:1")
                          If Ctr1 > 1 Then
     
                            Start = Timer    ' Set start time.
                            Do While Timer < Start + pausetime
                                DoEvents    ' Yield to other processes.
                            Loop
                          End If
                        If Ctr1 > 1000 Then
                          Application.StatusBar = "Erreur : " & LCase(Application.Trim(C.Value)) & _
                            " page " & I & "essai " & Ctr1
                          Exit Sub
                        End If
                       Loop
                       Application.StatusBar = LCase(Application.Trim(C.Value)) & " page " & I & _
                         " essai " & Ctr1
                      End With
                      If Desti(1, 1) <> "ATP" Then GoTo Fin
                  Next I
    Fin:
                For Each cnx In ActiveWorkbook.Connections
                    If cnx.Name <> "Connexion" Then cnx.Delete
                Next
              Next C
            Next Item
            On Error GoTo 0
    Merci d'avance.

  2. #2
    Expert confirmé
    Homme Profil pro
    aucune
    Inscrit en
    Septembre 2011
    Messages
    8 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : aucune

    Informations forums :
    Inscription : Septembre 2011
    Messages : 8 208
    Par défaut
    PS. Quel idiot ! En copiant le code, je viens de remarquer le "On Error Resume Next". Je l'enlève et je reviens.

  3. #3
    Expert confirmé
    Homme Profil pro
    aucune
    Inscrit en
    Septembre 2011
    Messages
    8 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : aucune

    Informations forums :
    Inscription : Septembre 2011
    Messages : 8 208
    Par défaut
    Malheureusement, même symptôme. Pas d'erreur et pas de réponse.

Discussions similaires

  1. Excel ne répond pas et dès le lancement
    Par guismoman60 dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 08/11/2017, 17h45
  2. [XL-2010] Excel ne répond pas VBA données à partir du WEB
    Par orectum dans le forum Macros et VBA Excel
    Réponses: 7
    Dernier message: 31/10/2016, 18h25
  3. [XL-2010] Microsoft Excel menus.xltm ne répond pas
    Par BUDGETS dans le forum Macros et VBA Excel
    Réponses: 9
    Dernier message: 17/06/2016, 20h40
  4. Microsoft EXCEL (Ne répond pas)
    Par GOLDINGMAROC dans le forum Excel
    Réponses: 3
    Dernier message: 17/06/2016, 13h58
  5. [WD-2003] macro word lancée par excel ne répond pas correctement
    Par QuestVba dans le forum VBA Word
    Réponses: 8
    Dernier message: 12/07/2012, 13h32

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