Probleme requette web Excel 2007
bonjours,
j'ai codé une macro qui doit m'importer une page web mais l'editeur me renvoit toujours une erreur
voici ce que j'ai codé (dans thisworkbook) :
Option Explicit
Sub requette(strURL As String, strNAME As String, rgnDesti As Range)
With ActiveSheet.QueryTables.Add(Connection:=strURL, Destination:=rgnDesti)
.name = strNAME
.FieldNames = True
.RowNumbers = False
.FillAdjacentFormulas = False
.PreserveFormatting = True
.RefreshOnFileOpen = False
.BackgroundQuery = True
.RefreshStyle = xlInsertDeleteCells
.SavePassword = False
.SaveData = True
.AdjustColumnWidth = True
.RefreshPeriod = 30
.WebSelectionType = xlSpecifiedTables
.WebFormatting = xlWebFormattingAll
.WebPreFormattedTextToColumns = True
.WebConsecutiveDelimitersAsOne = True
.WebSingleBlockTextImport = False
.WebDisableDateRecognition = False
.WebDisableRedirections = False
.Refresh BackgroundQuery:=False
End With
End Sub
Sub import_cotes()
Dim rgn As Range
Dim url As String
Dim name As String
Dim i As Integer
'supprime les requettes existantes et efface les donnees
If ActiveSheet.QueryTables.Count > 0 Then
For i = ActiveSheet.QueryTables.Count To 1 Step -1
ActiveSheet.QueryTables(i).Delete
Range("a3:v503").ClearContents
Next i
End If
'appelle la procedure requette
url = ActiveWorkbook.Worksheets("cotes").Range("a1").Value
name = ActiveWorkbook.Worksheets("cotes").Range("a2").Value
Set rgn = ActiveWorkbook.Worksheets("cotes").Range("a3")
requette url, name, rgn
End SubSachant qu'en cellule a1 j'ai la formule suivante:
=CONCATENER("http://www.pmu.fr/pmu/servlet/pmu.web.servlet.www.infos.ListeToutesCotes?dd=";JOUR($V$1);$W$1;MOIS($V$1);ANNEE($V$1))pour le lien vers lequel je veux aller
en a2:
=CONCATENER("pmu.web.servlet.www.infos.ListeToutesCotes?dd=";JOUR($V$1);$W$1;MOIS($V$1);ANNEE($V$1))qui est le nom de ma requette
en w2:
=SI(MOIS(V1)<10;0;"")et la date d'importation des cotes en v1
l'erreur est la suivante:
erreur defini par l'application ou par l'objet
merci d'avance de vos réponses et bonne soirée
Bonjour,
2 petites erreurs dans tes formules, et 1 autre dans le code...
Dans tes formules Concatener, tu fais référence à W1 pour rajouter le 0 pour les mois inférieurs à 10.
Or ton 0 se trouve en W2...
Rectifie tes 2 formules (en A1 et A2), ou mets la formule en W1...
Pour le code, il te manque un argument dans la requête :
With ActiveSheet.QueryTables.Add(Connection:=strURL, Destination:=rgnDesti)Il faut rajouter l'argument "URL"...
With ActiveSheet.QueryTables.Add(Connection:="URL;" & strURL, Destination:=rgnDesti)Cependant, tu n'auras toujours rien, car tu détermines des zones spécifiées à importer :
.WebSelectionType = xlSpecifiedTablesJe ne sais pas si tu les as déjà spécifiées, dans le doute, tu peux mettre :
.WebSelectionType = xlEntirePageBon courage
Edit, et j'oubliais, il est toujours préférable de mettre ses codes dans des modules standard, plutôt que dans les codes de feuilles ou de classeur...
salut ,
merci pour ta reponse j'ai fait les modif. et ca marche nikel
merci beaucoup
gwena