Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

Simplification requête web

2 réponses
Avatar
Péhemme
Bonjour à tous,

J'ai, à l'aide du VBE écrit cette macro qui n'est que l'enchaînement de 2
requêtes sur un site web.
Ceci fonctionne parfaitement bien, cependant, par mesure d'esthétisme et,
peut-être de rapidité, peut-on n'effectuer qu'une seule requête tout en
obtenant les "2 informations" demandées ?
Si oui, pouvez-vous me mettre sur la voie ?
Merci d'avance de votre aide.

Sub aa_NouvelEssai()
Dim Sh, Dest1, Dest2
Set Sh = Sheets("ImportDonnées")
Set Dest1 = Range("ImportDonnées!A1")
Set Dest2 = Range("ImportDonnées!A6")

Application.ScreenUpdating = False

With Sh.QueryTables.Add(Connection:= _
"URL;http://www.lfp.fr/ligue1/classement.asp", Destination:=Dest1)
'Range("A1"))
.Name = "classement"
.FieldNames = True
.RowNumbers = False
.FillAdjacentFormulas = False
.PreserveFormatting = True
.RefreshOnFileOpen = False
.BackgroundQuery = True
.RefreshStyle = xlOverwriteCells 'xlInsertDeleteCells
.SavePassword = False
.SaveData = True
.AdjustColumnWidth = True
.RefreshPeriod = 0
.WebSelectionType = xlSpecifiedTables
.WebFormatting = xlWebFormattingNone
.WebTables = "9" '==> informations récupérée
.WebPreFormattedTextToColumns = True
.WebConsecutiveDelimitersAsOne = True
.WebSingleBlockTextImport = False
.WebDisableDateRecognition = False
.WebDisableRedirections = False
.Refresh BackgroundQuery:=False
End With
With Sh.QueryTables.Add(Connection:= _
"URL;http://www.lfp.fr/ligue1/classement.asp",
Destination:=Dest2) 'Range("A6"))
.Name = "classement"
.FieldNames = True
.RowNumbers = False
.FillAdjacentFormulas = False
.PreserveFormatting = True
.RefreshOnFileOpen = False
.BackgroundQuery = True
.RefreshStyle = xlOverwriteCells 'xlInsertDeleteCells
.SavePassword = False
.SaveData = True
.AdjustColumnWidth = True
.RefreshPeriod = 0
.WebSelectionType = xlSpecifiedTables
.WebFormatting = xlWebFormattingNone
.WebTables = "11" '==> informations récupérée
.WebPreFormattedTextToColumns = True
.WebConsecutiveDelimitersAsOne = True
.WebSingleBlockTextImport = False
.WebDisableDateRecognition = False
.WebDisableRedirections = False
.Refresh BackgroundQuery:=False
End With

Application.ScreenUpdating = False
End Sub

Bonne journée
Michel

2 réponses

Avatar
Misange
bonjour

ben vu que tes requêtes sont différentes et que tu copies le résultat
dans des cellules différentes, je vois pas bien ce que tu voudrais
(pourrais) faire d'autre...


Misange migrateuse
XlWiki : Participez à un travail collaboratif sur excel !
http://xlwiki.free.fr/wiki
http://www.excelabo.net

Péhemme a écrit :
Bonjour à tous,

J'ai, à l'aide du VBE écrit cette macro qui n'est que l'enchaînement de
2 requêtes sur un site web.
Ceci fonctionne parfaitement bien, cependant, par mesure d'esthétisme
et, peut-être de rapidité, peut-on n'effectuer qu'une seule requête tout
en obtenant les "2 informations" demandées ?
Si oui, pouvez-vous me mettre sur la voie ?
Merci d'avance de votre aide.

Sub aa_NouvelEssai()
Dim Sh, Dest1, Dest2
Set Sh = Sheets("ImportDonnées")
Set Dest1 = Range("ImportDonnées!A1")
Set Dest2 = Range("ImportDonnées!A6")

Application.ScreenUpdating = False

With Sh.QueryTables.Add(Connection:= _
"URL;http://www.lfp.fr/ligue1/classement.asp",
Destination:Þst1) 'Range("A1"))
.Name = "classement"
.FieldNames = True
.RowNumbers = False
.FillAdjacentFormulas = False
.PreserveFormatting = True
.RefreshOnFileOpen = False
.BackgroundQuery = True
.RefreshStyle = xlOverwriteCells 'xlInsertDeleteCells
.SavePassword = False
.SaveData = True
.AdjustColumnWidth = True
.RefreshPeriod = 0
.WebSelectionType = xlSpecifiedTables
.WebFormatting = xlWebFormattingNone
.WebTables = "9" '==> informations récupérée
.WebPreFormattedTextToColumns = True
.WebConsecutiveDelimitersAsOne = True
.WebSingleBlockTextImport = False
.WebDisableDateRecognition = False
.WebDisableRedirections = False
.Refresh BackgroundQuery:úlse
End With
With Sh.QueryTables.Add(Connection:= _
"URL;http://www.lfp.fr/ligue1/classement.asp",
Destination:Þst2) 'Range("A6"))
.Name = "classement"
.FieldNames = True
.RowNumbers = False
.FillAdjacentFormulas = False
.PreserveFormatting = True
.RefreshOnFileOpen = False
.BackgroundQuery = True
.RefreshStyle = xlOverwriteCells 'xlInsertDeleteCells
.SavePassword = False
.SaveData = True
.AdjustColumnWidth = True
.RefreshPeriod = 0
.WebSelectionType = xlSpecifiedTables
.WebFormatting = xlWebFormattingNone
.WebTables = "11" '==> informations récupérée
.WebPreFormattedTextToColumns = True
.WebConsecutiveDelimitersAsOne = True
.WebSingleBlockTextImport = False
.WebDisableDateRecognition = False
.WebDisableRedirections = False
.Refresh BackgroundQuery:úlse
End With

Application.ScreenUpdating = False
End Sub

Bonne journée
Michel



Avatar
Péhemme
Bon, eh bien tant pis.
Comme c'est la même page du site qui est "ouverte" et la même feuille Excel
qui sert de destination, je pensais qu'il y avait mieux à faire, même si je
ne suis parvenu à rien après avoir trituré ces lignes de code .
Merci de t'être penchée sur ma question.
Bonne soirée
Michel

"Misange" a écrit dans le message de
news:%23BFKQSW$
bonjour

ben vu que tes requêtes sont différentes et que tu copies le résultat dans
des cellules différentes, je vois pas bien ce que tu voudrais (pourrais)
faire d'autre...


Misange migrateuse
XlWiki : Participez à un travail collaboratif sur excel !
http://xlwiki.free.fr/wiki
http://www.excelabo.net

Péhemme a écrit :
Bonjour à tous,

J'ai, à l'aide du VBE écrit cette macro qui n'est que l'enchaînement de 2
requêtes sur un site web.
Ceci fonctionne parfaitement bien, cependant, par mesure d'esthétisme et,
peut-être de rapidité, peut-on n'effectuer qu'une seule requête tout en
obtenant les "2 informations" demandées ?
Si oui, pouvez-vous me mettre sur la voie ?
Merci d'avance de votre aide.

Sub aa_NouvelEssai()
Dim Sh, Dest1, Dest2
Set Sh = Sheets("ImportDonnées")
Set Dest1 = Range("ImportDonnées!A1")
Set Dest2 = Range("ImportDonnées!A6")

Application.ScreenUpdating = False

With Sh.QueryTables.Add(Connection:= _
"URL;http://www.lfp.fr/ligue1/classement.asp", Destination:Þst1)
'Range("A1"))
.Name = "classement"
.FieldNames = True
.RowNumbers = False
.FillAdjacentFormulas = False
.PreserveFormatting = True
.RefreshOnFileOpen = False
.BackgroundQuery = True
.RefreshStyle = xlOverwriteCells 'xlInsertDeleteCells
.SavePassword = False
.SaveData = True
.AdjustColumnWidth = True
.RefreshPeriod = 0
.WebSelectionType = xlSpecifiedTables
.WebFormatting = xlWebFormattingNone
.WebTables = "9" '==> informations récupérée
.WebPreFormattedTextToColumns = True
.WebConsecutiveDelimitersAsOne = True
.WebSingleBlockTextImport = False
.WebDisableDateRecognition = False
.WebDisableRedirections = False
.Refresh BackgroundQuery:úlse
End With
With Sh.QueryTables.Add(Connection:= _
"URL;http://www.lfp.fr/ligue1/classement.asp",
Destination:Þst2) 'Range("A6"))
.Name = "classement"
.FieldNames = True
.RowNumbers = False
.FillAdjacentFormulas = False
.PreserveFormatting = True
.RefreshOnFileOpen = False
.BackgroundQuery = True
.RefreshStyle = xlOverwriteCells 'xlInsertDeleteCells
.SavePassword = False
.SaveData = True
.AdjustColumnWidth = True
.RefreshPeriod = 0
.WebSelectionType = xlSpecifiedTables
.WebFormatting = xlWebFormattingNone
.WebTables = "11" '==> informations récupérée
.WebPreFormattedTextToColumns = True
.WebConsecutiveDelimitersAsOne = True
.WebSingleBlockTextImport = False
.WebDisableDateRecognition = False
.WebDisableRedirections = False
.Refresh BackgroundQuery:úlse
End With

Application.ScreenUpdating = False
End Sub

Bonne journée
Michel