Bonjour,
je me permets de vous solliciter n'arrivant pas à régler un problème sur une query. Ce code a pour but de récupérer des datas via un fichier .csv. Le programme bloque au niveau du ".Refresh BackgroundQuery:=False", or ce dernier ne bloque pas avec d'autres url (j'ai un autre code avec une querry identique et qui ne bloque pas).
Merci d'avance de votre aide.
je me permets de vous solliciter n'arrivant pas à régler un problème sur une query. Ce code a pour but de récupérer des datas via un fichier .csv. Le programme bloque au niveau du ".Refresh BackgroundQuery:=False", or ce dernier ne bloque pas avec d'autres url (j'ai un autre code avec une querry identique et qui ne bloque pas).
Merci d'avance de votre aide.
Code:
Sub GetData()
'Variables
Dim DataSheet As Worksheet
Dim str, endDate, startDate, fromCurr, toCurr, CellDest As String
Dim LastRow, ListeDevises, decalage, decalage2 As Integer
'Initialisation
Sheets("Liste").Select
startDate = Range("G1")
endDate = Range("G2")
Sheets("Data").Cells.Clear
ListeDevises = Range("A65536").End(xlUp).Row 'Nb de devises
decalage = -1
decalage2 = 1
'Boucle sur les devises
For i = 4 To ListeDevises
fromCurr = Range("A" & i)
toCurr = Range("B" & i)
'Lien pour recup les infos
str = "http://stooq.com/q/d/l/?s=" & fromCurr & toCurr & "&d1=20111231&d2=20121011&i=d"
'Décalage des cours dans le fichier data
Select Case i 'Sinon on cherche à recuperer la lettre avec un décalage à chaque fois
Case Is <= 16
colonne = Chr(62 + i + decalage)
decalage = decalage + 1
Case Is > 16
colonne = Chr(64 + Int((i - 4) / 13)) 'Retourne la première lettre
If decalage2 = 14 Then
decalage2 = 1
End If
colonne = colonne & Chr(64 + i - 4 - Int((i - 4) / 13) * 13 + decalage2)
decalage2 = decalage2 + 1
End Select
'Recuperation des données
CellDest = colonne & "1"
QueryQuote:
With Sheets("Data").QueryTables.Add(Connection:="URL;" & str, Destination:=Sheets("Data").Range(CellDest))
.BackgroundQuery = True
.TablesOnlyFromHTML = False
.Refresh BackgroundQuery:=False
.SaveData = True
End With
Next i
End Sub