Extraction d'un site web avec adresse variable
Bonjour à tous,
Voilà, j'ai fait une macro permettant d'extraire le contenu d'un site Web dans une Feuille Excel. Jusqu'ici pas de problème. En revanche, je souhaiterais que l'adresse html que j'extrais soit choisis par l'utilisateur. Ainsi j'essaye de créer une boîte de dialogue pour récupérer le lien que l'utilisateur souhaite extraire, mais je ne parviens pas à créer une extraction variable en fonction de ce que l'utilisateur entre comme valeur de champ.
Idéalement, étant donné que l'adresse html est toujours sous une forme : https://abcde:...079...html je souhaiterais pouvoir demander le chiffre central de l'adresse à l'utilisateur (079 dans mon exemple) et que la macro se charge de remplacer au sein de mon adresse type, la valeur de la page choisie. Mais si cela n'est pas possible, je peux me résoudre à utiliser une solution qui demande l'intégralité du lien à l'utilisateur.
Mon problème est donc que dans la fonction QueryTables.Add me permet de rentrer une page html à extraire, mais que je ne parviens pas à en faire une donnée variable qui pourrait être choisi par l'utilisateur. Par exemple, dans l'exemple ci dessous, je souhaiterais que l'utilisateur puisse changer l'adresse https://www.blog-excel.com à extraire, avant que l'extraction ne se fasse :
With Sheets("TEMP").QueryTables.Add(Connection:="URL;https://www.blog-excel.com" _
, Destination:=Sheets("TEMP").Range("$A$1"))
.Name = "exemple"
.FieldNames = True
.RowNumbers = False
.FillAdjacentFormulas = False
.PreserveFormatting = False
.RefreshOnFileOpen = False
.BackgroundQuery = True
.RefreshStyle = xlInsertDeleteCells
.SavePassword = False
.SaveData = True
.AdjustColumnWidth = True
.RefreshPeriod = 0
.WebSelectionType = xlEntirePage
.WebFormatting = xlWebFormattingAll
.WebPreFormattedTextToColumns = True
.WebConsecutiveDelimitersAsOne = True
.WebSingleBlockTextImport = False
.WebDisableDateRecognition = False
.WebDisableRedirections = False
.Refresh BackgroundQuery:=False
End WithVoilà, je ne sais pas si c'est très clair, mais par avance je vous remercie pour votre aide.
Bonjour Glouposti et
Une petite présentation ICI serait la bienvenue
Sinon avec ce genre de code à modifier pour l'URL
Sub Test()
Dim sNumURL As String
sNumURL = Application.InputBox("Chiffre de l'URL", "SAISIE du CHIFFRE", Type:=1)
With Sheets("TEMP").QueryTables.Add(Connection:="URL;https://abcde" & sNumURL & ".html", _
Destination:=Sheets("TEMP").Range("$A$1"))
.Name = "exemple"
.FieldNames = True
.RowNumbers = False
.FillAdjacentFormulas = False
.PreserveFormatting = False
.RefreshOnFileOpen = False
.BackgroundQuery = True
.RefreshStyle = xlInsertDeleteCells
.SavePassword = False
.SaveData = True
.AdjustColumnWidth = True
.RefreshPeriod = 0
.WebSelectionType = xlEntirePage
.WebFormatting = xlWebFormattingAll
.WebPreFormattedTextToColumns = True
.WebConsecutiveDelimitersAsOne = True
.WebSingleBlockTextImport = False
.WebDisableDateRecognition = False
.WebDisableRedirections = False
.Refresh BackgroundQuery:=False
End With
End Sub@+
Merci infiniment BrunoM45 pour cette aide, qui correspond parfaitement à ma demande.
Merci également pour le lien vers le site de présentation, j'ai pu créer une page de présentation ;)
Merci beaucoup, je ne suis pas encore très au point, mais je vous promets de m'améliorer.
Re,
C'est bien pour cette raison qu'il est important de passer par [A LIRE AVANT DE POSTER]
Tout est indiqué dedans
Bonjour BrunoM45, bonjour à tous,
La fonction que vous m'aviez proposé ne fonctionne plus. Elle me renvoie l'erreur suivante :
Run-time error '1004':
Unable to open
https://abcde
The Internet site reports that the item you requested could not be found. (HTTP/1.0 404)
Or lorsque je remplace la dimension variable de l'adresse par mon adresse dans son intégralité (ie se terminant par 079... etc), la macro parvient à faire l'extraction. Il semble donc que le problème vienne de la compréhension par la macro, du site que j'essaie de lui renseigner.
Auriez-vous une idée, d'où peut provenir cette erreur ?
Merci d'avance
