Un aperçu pour un seul site ! à condition que tu aies chrome ou firefox comme navigateur par défaut.
Il faut laisser tourner, le navigateur va se lancer puis revenir sur excel. Cela reste assez pointu, "susceptible", mais je n'ai pas d'autres solutions ! Ne rien faire d'autre qu'attendre ...
#If VBA7 Then
Private Declare PtrSafe Function ShellExecute Lib "shell32.dll" Alias "ShellExecuteA" _
(ByVal hwnd As Long, ByVal lpOperation As String, ByVal lpFile As String, ByVal lpParameters As String, ByVal lpDirectory As String, ByVal nShowCmd As Long) As Long
#Else
Private Declare Function ShellExecute Lib "shell32.dll" Alias "ShellExecuteA" _
(ByVal hwnd As Long, ByVal lpOperation As String, ByVal lpFile As String, ByVal lpParameters As String, ByVal lpDirectory As String, ByVal nShowCmd As Long) As Long
#End If
Sub telecharger()
Dim nav As Long, MyData As DataObject
Set MyData = New DataObject
Dim page As New HTMLDocument
fenetre = ActiveWindow.Caption
ligne = 2
url = Sheets(1).Cells(ligne, 1)
' premier lancement d'un site quelconque afin d'ouvrir automatiquement le navigateur
nav = ShellExecute(0, "open", "https://www.qwant.com/", 0, 0, 1)
Application.Wait (Now + TimeValue("00:00:02"))
' code pour se mettre dans la barre d'adresse et pouvoir renseigner l'url
SendKeys "%d"
Application.Wait (Now + TimeValue("00:00:01"))
' écriture de view-source: suivi de l'url
SendKeys "view-source:" & url
SendKeys "{ENTER}"
' temps d'attente du chargement complet, dépend de la qualité de la connexion et de l'état du PC
Application.Wait (Now + TimeValue("00:00:10"))
' envoi de Ctrl+a (tout sélectionner)
SendKeys "^a"
Application.Wait (Now + TimeValue("00:00:01"))
' envoi de Ctrl+c (copier)
SendKeys "^c"
Application.Wait (Now + TimeValue("00:00:01"))
' récupération du contenu du presse-papier
MyData.GetFromClipboard
txt = MyData.GetText(1)
' page.body.innerHTML = txt
tbl = Split(txt, "<div id=""graph")
For j = 1 To UBound(tbl)
Sheets(1).Cells(ligne, j + 1) = Replace(Replace(Replace(Split(Split(tbl(j), ">")(1), "<")(0), vbTab, ""), vbCrLf, ""), " ", "")
Next
fin
Application.Wait (Now + TimeValue("00:00:02"))
AppActivate fenetre & " - Excel"
End Sub
Sub fin()
Open Environ("TEMP") & "\" & "fin" & ".htm" For Output As #1
Print #1, "<html><body>Fin du traitement, retour sur excel ...</body></html>"
Close #1
ShellExecute 0, "open", Environ("TEMP") & "\" & "fin" & ".htm", vbNullString, "C:\TEMP\", 1 'SW_SHOWNORMAL
End Sub