De plus y a t-il un moyen pour que le If cells en jaune passe avant le lancement de Qwant car je voudrais que si et seulement si la colonne B est vide alors lancer Qwant et tout le reste de la formule sinon passer à la ligne suivante.
Dans le cas présent si toutes les lignes sont pleines Qwant se lance quand même et ferme mon navigateur internet.
En fait Qwant est juste là pour lacer le navigateur ! Il n'est pas possible de le déplacer car il faut que le navigateur soit lancé, identifié par excel, pour ensuite écrire dans la barre d'adresse view-source:
et ensuite l'url.
Par contre, pour éviter de fermer le navigateur, j'avais proposé de lancer une page banale qui disait "Fin du traitement, retour sur excel ..." et ne fermait pas le navigateur, mais que tu n'avais pas retenue.
Il y a aussi une autre solution qui est la suivante :
#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
If Cells(ligne, 2) = "" Then
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
End If
Next
SendKeys "%d"
Application.Wait (Now + TimeValue("00:00:01"))
SendKeys "https://www.qwant.com/"
SendKeys "{ENTER}"
Application.Wait (Now + TimeValue("00:00:03"))
AppActivate fenetre & " - Excel"
End Sub