Pb Query, erreur d'execution 1004 (VBA)

expender

XLDnaute Nouveau
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.
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
 

Mytå

XLDnaute Occasionnel
Re : Pb Query, erreur d'execution 1004 (VBA)

Re le forum

Tu pourrais déjà ouvrir le fichier .csv dans une seconde instance d'Excel
Il suffit ensuite dans faire la copie et fermer le fichier Excel qui vient d'être créé.
Code:
Sub Import_CSV()
  Dim strURL As String
    strURL = "http://stooq.com/q/d/l/?s=eursgd&d1=20111231&d2=20121011&i=d"
    Workbooks.Open Filename:=strURL
End Sub
Mytå
 

Mytå

XLDnaute Occasionnel
Re : Pb Query, erreur d'execution 1004 (VBA)

Re le forum

La macro qui récupère le fichier CSV sur le lien internet.
Code:
Sub GetData()

'Variables
Dim DataSheet As Worksheet
Dim WBsrc As Workbook, WBdest As Workbook
Dim strURL As String, endDate As String, startDate As String
Dim fromCurr As String, toCurr As String, CellDest As String
Dim LastRow As Integer, ListeDevises As Integer
Dim i As Integer, ColOffset As Integer

    'Initialisation
    Set WBdest = ThisWorkbook
    Sheets("Liste").Select
    startDate = Format(Range("B1"), "yyyymmdd")
    endDate = Format(Range("B2"), "yyyymmdd")
    Sheets("Data").Cells.Clear
    ListeDevises = Range("A65536").End(xlUp).Row
    ColOffset = 0

    'Boucle sur les devises
    For i = 4 To ListeDevises
        fromCurr = Range("A" & i)
        toCurr = Range("B" & i)
        'Lien pour recup les infos
        strURL = "http://stooq.com/q/d/l/?s=" & fromCurr & toCurr & "&d1=" & startDate & "&d2=" & endDate & "&i=d"
        'Recuperation des données
        Set WBsrc = Application.Workbooks.Open(strURL, , True)
        WBdest.Sheets("Data").Range("A1").Offset(0, ColOffset) = "From " & fromCurr & " to " & toCurr
        WBsrc.Sheets(1).Range("A1").CurrentRegion.Copy WBdest.Sheets("Data").Range("A1").Offset(1, ColOffset)
        WBsrc.Close
        ColOffset = ColOffset + 6
        Set WBsrc = Nothing
    Next i
    Set WBdest = Nothing
End Sub
Le fichier :Import_CSV.xls

Mytå
 

expender

XLDnaute Nouveau
Re : Pb Query, erreur d'execution 1004 (VBA)

Même si cela ne répond pas à ma question qui est de comprendre pourquoi mon code ne marche pas, c'est une façon habile de contourner le problème.
Perso pour ton temps Mytå, je vais regarder ce code de ce pas !
 

expender

XLDnaute Nouveau
Re : Pb Query, erreur d'execution 1004 (VBA)

Merci de cette réponse Mytå, ce qui me "chagrine" un peu c'est que j'ai le même code pour les actions qui va lui aussi récupérer un fichier .csv et cela marche très bien.

Néanmoins un grand merci pour le fichier que tu as ajouté qui est parfaitement ce que je cherchais (à croire que tu l'avais déjà fait pour toi !). Il me reste à comprendre pourquoi le site bloque après plusieurs devises téléchargées ce qui est un autre problème...
 

Discussions similaires

Réponses
11
Affichages
360

Statistiques des forums

Discussions
312 545
Messages
2 089 453
Membres
104 169
dernier inscrit
alain_geremy