ActiveSheet.QueryTables.Add problème avec URL

Bonjour à tous,

Je m'arrache les cheveux sur un problème concernant une url contenue dans une variable qui me fait bugguer la procédure par un message "Erreur définie par l'application ou par l'objet".

Lorsque je met cette URL en "dur" en dehors d'une variable , aucun soucis...

Voici le code (j suis un programmeur du dimanche) :

Sub Macro9()

Dim row

row = 2
Sheets("Feuil1").Select

Do While Range("F" & row & "").Value = "OK"

URLitem = Range("I" & row & "").Value

Sheets("Feuil2").Select

    With ActiveSheet.QueryTables.Add(Connection:= _
        "URL;" & URLitem _
        , Destination:=Range("$A$1"))
        .Name = _
        "item_history2.txt?char_name=demo&region_ids=10000002&type_ids=11561&days=5"
        .FieldNames = True
        .RowNumbers = False
        .FillAdjacentFormulas = False
        .PreserveFormatting = True
        .RefreshOnFileOpen = False
        .BackgroundQuery = False
        .RefreshStyle = xlInsertDeleteCells
        .SavePassword = False
        .SaveData = True
        .AdjustColumnWidth = True
        .RefreshPeriod = 0
        .WebSelectionType = xlEntirePage
        .WebFormatting = xlWebFormattingNone
        .WebPreFormattedTextToColumns = False
        .WebConsecutiveDelimitersAsOne = True
        .WebSingleBlockTextImport = False
        .WebDisableDateRecognition = True
        .WebDisableRedirections = True
        .Refresh BackgroundQuery:=False
.WorkbookConnection.Delete
End With

Le debug souligne en jaune la ligne :

.Refresh BackgroundQuery:=False

Mais c'est bien l'url qui déconne car si je la met en direct ça passe.

URLItem est une URL de ce type :

http://api.eve-marketdata.com/api/item_history2.txt?char_name=demo&region_ids=10000002&type_ids=11561&days=5

Avez vous une piste?

Cordialement,

75itemhistorycut.xlsm (22.87 Ko)

bonjour,

A priori le système ne comprend pas un URLitem de ce type :

http://api.eve-marketdata.com/api/item_ ... 561&days=5

La bonne adresse étant :

"URL;http://api.eve-marketdata.com/api/item_history2.txt?char_name=demo&region_ids=10000002&type_ids=11561&days=5"

enfin dans le code il y a un petit travail de découpage de string car une partie de l'URLitem est reprise dans la ligne suivante :

Name =_

Si URLitem est une variable générée par la boucle For... Name sera nécessairement différent à chaque tour de Next

Pour résumer, ton exposé ne suffit pas il faut nécessairement un bout de classeur (en pièce jointe) avec au moins 2 URL différentes (et valide) en F2,F3... pour valider la syntaxe de tes URL et mettre au point l'ensemble.

A+

merci de ta réponse,

J'ai ajouté un extrait du classeur, pour Name ce n'est pas un problème je reprendrai l'url ou ferait générer un nom avec une incrémentation.

Et je tiens à préciser que j'ai changé :

URLitem=Range("I" & row & "").Value 

par

URLitem=Range("I" & row).value

mais ça revient en même...

Je crois que c'est impossible d'utiliser une variable pour définir l'URL de Query tables.add...

Ca me semble hallucinant mais je ne vois rien d'autre...

Ca me fait pareil avec :

    ActiveWorkbook.XmlImport URL:= _
         URLitem _
        , ImportMap:=Nothing, Overwrite:=True, Destination:=Range("$A$1")
    ActiveWorkbook.XmlMaps("emd_Mappage").Delete

Si je remplace la variable URLitem par l'adresse en dur c'est bon, sinon j'ai une erreur : "requiert un élement supérieur"

pour le Xml l'adresse (donc je susi sur qu'elle fonctionne et qui est noté ainsi sans ambiguité dans une feuille :

http://api.eve-marketdata.com/api/item_history2.xml?char_name=demo&region_ids=10000002&type_ids=11561&days=5

Je desespere...

Bonjour,

Voici une syntaxe correcte :

Sub Macro9()
Dim row, URLitem$
row = 2
Sheets("Feuil1").Select
Do While Range("F" & row & "").Value = "OK"
URLitem = "URL;" & Range("I" & row)
Sheets("Feuil2").Select
    With ActiveSheet.QueryTables.Add(Connection:=URLitem, Destination:=Range("Feuil2!$A$1"))
        .Name = _
        "item_history2.txt?char_name=demo&region_ids=10000002&type_ids=11561&days=5"
        .FieldNames = True
        .RowNumbers = False
        .FillAdjacentFormulas = False
        .PreserveFormatting = True
        .RefreshOnFileOpen = False
        .BackgroundQuery = False
        .RefreshStyle = xlInsertDeleteCells
        .SavePassword = False
        .SaveData = True
        .AdjustColumnWidth = True
        .RefreshPeriod = 0
        .WebSelectionType = xlEntirePage
        .WebFormatting = xlWebFormattingNone
        .WebPreFormattedTextToColumns = False
        .WebConsecutiveDelimitersAsOne = True
        .WebSingleBlockTextImport = False
        .WebDisableDateRecognition = True
        .WebDisableRedirections = True
        .Refresh BackgroundQuery:=False
.WorkbookConnection.Delete
End With
DoEvents
'La suite sans changement

Avec ce code, j'arrive à faire tourner sans problème sur les 2 première adresses (donc les lignes 2 et 3 de Feuil1) ensuite j'ai un erreur au niveau du Refresh donc on peut supposer le programme est bon mais que ce sont les adresses à partir de la ligne 4 qui clochent...

Je te laisse y réfléchir car mon timing est peut serré pour aujourd'hui, mais expérimente et dis moi : Demain sera un nouveau jour et j'aurai un peu plus de temps...

Nota : Avec ce code on est manifestement sur des problèmes d'URL car seules les lignes 2 et 3 renvoient quelque chose les autres renvoient une erreur de Refresh. Donc bien revoir si tu n'as pas zappé quelque chose au niveau des URL...

Et les URL des lignes 7 et 10 renvoient également quelque chose...

A+

Rechercher des sujets similaires à "activesheet querytables add probleme url"