Hey Curulis, mais tu brûles, non non tu deviens hyper spécialiste !
je pense en effet qu'une fois signé, il faudra lancer le site dans un navigateur par ShellExecute avec une astuce qui sera de faire précéder l'url par view-source: on récupère ainsi le code source que l'on peut travailler.
#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
' 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"))
For ligne = 2 To Sheets(1).Cells(Rows.Count, 1).End(xlUp).Row
url = Sheets(1).Cells(ligne, 1)
' 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
Next
'SendKeys "%{F4}"
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
il ne faut toucher à RIEN tant que le traitement n'est pas terminé ... donc pause-café ou pause-pipi
j'ai utilisé split ici, mais mieux vaut utiliser page.body.innerHTML
autre solution à tester bien plus performante : https://forum.excel-pratique.com/astuces/google-sheets-importxml-et-xpath-150789