code d'une importation de tableau via url(s) en boucle

betteggan

XLDnaute Nouveau
Bonjour à tous et toutes,


Le code que j'ai réalisé et qui est joint concerne des requêtes multiples qui vont toujours sur le même site.
Dans le code joint j'ai mis une boucle qui va de la ligne 25 à 35 pour tester. Dans le réel on ira de 2 à 2017 ! soit plus de 2000 importations !

Existe t il un aille pour que le code aille plus rapidement ?
Si vous aviez à modifier ce code, d'une manière générale, qu'améliorerez vous ?
Pour info,je suis novice et autodidacte en vba.

Merci pour vos avis éclairés.

HTML:
Sub aafixtures50quimarche()
Dim DLig As Long, Lig As Long, Sht As Worksheet, sURL As String
Dim NLig As Long
Dim fURL As String
  ' Définir la feuille de données
  Set Sht = Sheets("base")
  
  ' Récupérer la dernière ligne du tableau
  DLig = Sht.Range("I" & Rows.Count).End(xlUp).Row
  
   ' Nettoyer la mémoire de l'ordi
    Shell "RunDll32.exe InetCpl.cpl,ClearMyTracksByProcess 8"
  ' Boucler sur tout le tableau
  For Lig = 25 To 35
 
 
    ' récupérer l'url de la ligne (results)
    sURL = Sht.Range("I" & Lig)
    ' récupérer l'url de la ligne (fixtures)
    fURL = Sht.Range("J" & Lig)
    
    ' Sur la feuille fixtures
    'On se positionne sur le feuil results pour faire la requète...DES FIXTURES
    Sheets("fixtures").Select
    With Sheets("fixtures")
      ' Trouver la prochaine ligne vide
      NLig = .Range("A" & Rows.Count).End(xlUp).Offset(1, 0).Row
      ' Insérer la requête web
    End With
   
    With ActiveSheet.QueryTables.Add(Connection:="URL;" & fURL, Destination _
        :=Range("$A$1"))
        .Name = "fixtures"
        .FieldNames = True
        .RowNumbers = False
        .FillAdjacentFormulas = False
        .PreserveFormatting = True
        .RefreshOnFileOpen = False
        .BackgroundQuery = True
        .RefreshStyle = xlInsertDeleteCells
        .SavePassword = False
        .SaveData = True
        .AdjustColumnWidth = True
        .RefreshPeriod = 0
        .WebSelectionType = xlAllTables
        .WebFormatting = xlWebFormattingNone
        .WebPreFormattedTextToColumns = True
        .WebConsecutiveDelimitersAsOne = True
        .WebSingleBlockTextImport = False
        .WebDisableDateRecognition = True
        .WebDisableRedirections = False
        .Refresh BackgroundQuery:=True
    End With
     
            DoEvents
         
             
  
    Next Lig
     
    Application.DisplayAlerts = True
    
    
End Sub
 

thebenoit59

XLDnaute Accro
Re : code d'une importation de tableau via url(s) en boucle

Bonjour Betteggan, le forum,

Je ne sais pas qu'elles sont les données que tu vas récupérer, et donc je ne pense pas que tu puisses réduire le temps de ce côté.

Je vois que tu récupères la variable sUrl, mais je ne te vois pas la réutiliser par la suite, tu pourrais déjà désactiver cette partie de code.

Tu peux également, au lieu de revenir rechercher ta fUrl, enregistrer la totalité des url dans un tableau, et boucler sur ton tableau.
 

betteggan

XLDnaute Nouveau
Re : code d'une importation de tableau via url(s) en boucle

Bonjour Benoit,

Je vois que tu récupères la variable sUrl, mais je ne te vois pas la réutiliser par la suite, tu pourrais déjà désactiver cette partie de code.


Effectivement, dans cette macro,je n'utilise que fURL. La sURL est dédiée à une autre macro qui lui ressemble....


Tu peux également, au lieu de revenir rechercher ta fUrl, enregistrer la totalité des url dans un tableau, et boucler sur ton tableau.

Je croyais que c'est ce que je faisais.... :) ou alors je ne sais pas constituer un tableau. Il y a une nuance qui m'échappe.
 

betteggan

XLDnaute Nouveau
Re : code d'une importation de tableau via url(s) en boucle

je te joints le fichier exemple, si ca peut aider.

j'ai réduis le nombre de ligne de l'onglet base (où sont les adresses des requetes), dans la vraie vie il y en a 2000 lignes.(dans la colonne I

Document Cjoint
 

thebenoit59

XLDnaute Accro
Re : code d'une importation de tableau via url(s) en boucle

J'ai purgé ton fichier entièrement pour ne garder que la partie sur laquelle tu avais demandé un coup de pouce.
J'espère que ça peut t'aider.
 

Pièces jointes

  • FCfsUivv3q5_fichierexemple.xlsm
    33.5 KB · Affichages: 37

betteggan

XLDnaute Nouveau
Re : code d'une importation de tableau via url(s) en boucle

Merci Benoit,

Je suis en train de regarder en mode réel, (avec ton code)c'est à dire avec 2000 lignes. J'ai interrompu le déroulement de la macro, et visiblement ca fonctionne bien plus rapidement grâce à tes modifications.
Maintenant, je dois décortiquer ton code pour bien comprendre la logique.

Merci beaucoup
 

Discussions similaires

Réponses
2
Affichages
265
Réponses
2
Affichages
120

Statistiques des forums

Discussions
312 305
Messages
2 087 077
Membres
103 455
dernier inscrit
saramachado