Bonjour à tous,
j 'ai une feuille "basemondiale" qui est notamment constituée d'une colonne I avec des adresses url.
Je cherche à faire une macro permettant d'importer chacune de ces adresses url dans une feuille TEMP.
MON QUERRY TABLE ne fonctionne pas dans ma boucle.
si kkun pouvait m'aider à faire en sorte que l'importation se fasse, je lui en serai très reconnaissant.
voici une copie de mon code :
Sub MacroTRAJET()
Dim DLig As Long, Lig As Long, sht As Worksheet, sURL As String
Dim NLig As Long
Dim IE As InternetExplorer
Delay = Sheets("basemondiale").[L1].Value
If Delay = 0 Then Delay = 15
'(si la cellule L1 de la feuille "basemondiale"est vide, alors le delay sera de 15 secondes)
Dim Start As Single
' Définir la feuille de données
Set sht = Sheets("basemondiale")
' Récupérer la dernière ligne de la feuille de données
DLig = sht.Range("I" & Rows.Count).End(xlUp).Row
' Boucler sur tout le tableau
For Lig = 2 To 1085
' récupérer l'url de la ligne dans la feuille "basemondiale" (la feuille de données)
sURL = sht.Range("I" & Lig)
' on ouvre internet explorer
Set IE = New InternetExplorer
IE.Visible = True
Application.DisplayAlerts = False
Debug.Print IE.readyState
IE.navigate sURL
'Attendre que la page désirée dont l'adresse est dans la base soit prete
While IE.readyState <> READYSTATE_COMPLETE
Wend
'Timer (Wait ralenti les autres appli) pour donner le temps de faire l'importation
Start = Timer + Delay ' pour 15 secondes
While Timer < Start
DoEvents
Wend
' Insérer PAR IMPORTATION la requête web dans feuille TEMP
' Sur la feuille TEMP
With Sheets("TEMP").QueryTables.Add(Connection:="URL;" & sURL, Destination:=Sheets("TEMP").Range("$A$1"))
.Name = False
.FieldNames = True
.RowNumbers = False
.FillAdjacentFormulas = False
.PreserveFormatting = False
.RefreshOnFileOpen = False
.BackgroundQuery = True
.RefreshStyle = xlInsertDeleteCells
.SavePassword = False
.SaveData = True
.AdjustColumnWidth = True
.RefreshPeriod = 0
.WebSelectionType = xlSpecifiedTables
.WebFormatting = xlWebFormattingAll
.WebTables = "11"
.WebPreFormattedTextToColumns = True
.WebConsecutiveDelimitersAsOne = True
.WebSingleBlockTextImport = False
.WebDisableDateRecognition = False
.WebDisableRedirections = False
.Refresh BackgroundQuery:=False
'Fermer le navigateur
IE.Quit
IEfermerOuErreur:
Set IE = Nothing
Application.DisplayAlerts = True
End With
With Sheets("LIGNE50")
' Trouver la prochaine ligne vide
NLig = .Range("A" & Rows.Count).End(xlUp).Offset(1, 0).Row
End With
Next Lig
End Sub
j 'ai une feuille "basemondiale" qui est notamment constituée d'une colonne I avec des adresses url.
Je cherche à faire une macro permettant d'importer chacune de ces adresses url dans une feuille TEMP.
MON QUERRY TABLE ne fonctionne pas dans ma boucle.
si kkun pouvait m'aider à faire en sorte que l'importation se fasse, je lui en serai très reconnaissant.
voici une copie de mon code :
Sub MacroTRAJET()
Dim DLig As Long, Lig As Long, sht As Worksheet, sURL As String
Dim NLig As Long
Dim IE As InternetExplorer
Delay = Sheets("basemondiale").[L1].Value
If Delay = 0 Then Delay = 15
'(si la cellule L1 de la feuille "basemondiale"est vide, alors le delay sera de 15 secondes)
Dim Start As Single
' Définir la feuille de données
Set sht = Sheets("basemondiale")
' Récupérer la dernière ligne de la feuille de données
DLig = sht.Range("I" & Rows.Count).End(xlUp).Row
' Boucler sur tout le tableau
For Lig = 2 To 1085
' récupérer l'url de la ligne dans la feuille "basemondiale" (la feuille de données)
sURL = sht.Range("I" & Lig)
' on ouvre internet explorer
Set IE = New InternetExplorer
IE.Visible = True
Application.DisplayAlerts = False
Debug.Print IE.readyState
IE.navigate sURL
'Attendre que la page désirée dont l'adresse est dans la base soit prete
While IE.readyState <> READYSTATE_COMPLETE
Wend
'Timer (Wait ralenti les autres appli) pour donner le temps de faire l'importation
Start = Timer + Delay ' pour 15 secondes
While Timer < Start
DoEvents
Wend
' Insérer PAR IMPORTATION la requête web dans feuille TEMP
' Sur la feuille TEMP
With Sheets("TEMP").QueryTables.Add(Connection:="URL;" & sURL, Destination:=Sheets("TEMP").Range("$A$1"))
.Name = False
.FieldNames = True
.RowNumbers = False
.FillAdjacentFormulas = False
.PreserveFormatting = False
.RefreshOnFileOpen = False
.BackgroundQuery = True
.RefreshStyle = xlInsertDeleteCells
.SavePassword = False
.SaveData = True
.AdjustColumnWidth = True
.RefreshPeriod = 0
.WebSelectionType = xlSpecifiedTables
.WebFormatting = xlWebFormattingAll
.WebTables = "11"
.WebPreFormattedTextToColumns = True
.WebConsecutiveDelimitersAsOne = True
.WebSingleBlockTextImport = False
.WebDisableDateRecognition = False
.WebDisableRedirections = False
.Refresh BackgroundQuery:=False
'Fermer le navigateur
IE.Quit
IEfermerOuErreur:
Set IE = Nothing
Application.DisplayAlerts = True
End With
With Sheets("LIGNE50")
' Trouver la prochaine ligne vide
NLig = .Range("A" & Rows.Count).End(xlUp).Offset(1, 0).Row
End With
Next Lig
End Sub