Récupérer les noms de toutes les page web ouvertes

inouekun

XLDnaute Nouveau
Bonjour,
Je souhaiterai récupérer tous les noms(ou url) de toutes les pages web qui sont ouvertes dans les navigateurs (ie, firefox, chrome...)
J'ai trouvé 2 bouts de codes qui (je pense) correspondent. Mais, je n'arrive pas à les faire fonctionner.
Code:
Sub principale()
  Dim url As String
 
  url = "http://www.excel-downloads.com/forum/newthread.php?do=newthread&f=7"
  MsgBox url, vbInformation, Test_URL_Existe(url)
 
  url = "Google"
  MsgBox url, vbInformation, Test_URL_Existe(url)
End Sub
 
Function Test_URL_Existe(url As String) As Boolean
    Dim Request As Object
    Dim ff As Integer
    Dim rc As Variant
 
    On Error GoTo EndNow
    Set Request = CreateObject("WinHttp.WinHttpRequest.5.1")
 
    With Request
      .Open "GET", url, False
      .Send
      rc = .StatusText
    End With
    Set Request = Nothing
    If rc = "OK" Then URLExists = True
 
    Exit Function
EndNow:
End Function
ça a marché une fois, et depuis, rien, ça ne marche plus,
Et j'ai récupérer le code qui se trouve à cette adresse : Formation Excel

Mais ça me met une erreur comme quoi il ne comprends pas les déclare.
Si quelqu'un pouvait m'aider, ce serai très sympatique.
Merci d'avance.
 

Staple1600

XLDnaute Barbatruc
Re : Récupérer les noms de toutes les page web ouvertes

Bonsoir à tous

inouekoun [Bienvenue sur le forum]
Voici une petit exemple qui fonctionne pour Internet Explorer
(test OK sur Excel 2013)
Code:
Sub testOK_avecIE()
Dim i&, x As Object
Range("A1:C1") = Array("N° onglet", "Titre onglet", "URL de l'onglet"): i = 2
With CreateObject("Shell.Application")
    For Each x In .Windows
        If (InStr(1, x, "Internet Explorer", 1)) Then
        Cells(i, 1) = i - 1: Cells(i, 2) = x.Document.Title: Cells(i, 3) = x.locationURL
        i = i + 1
    End If
Next
End With
End Sub
 

inouekun

XLDnaute Nouveau
Re : Récupérer les noms de toutes les page web ouvertes

Bonjour Staple

Merci pour ton aide :)
J'ai trouvé une solution, je la donne pour que les utilisateurs aient le choix :p
(Si jamais des personnes utilisent notre topic pour leur problème ^^)
Je n'utilise pas les feuilles excel pour mettre les url, je les récupère et regarde si c'est la page qui m'interesse,

Code:
Dim IE As Object
Set IE = CreateObject("InternetExplorer.Application")
Dim winShell As New ShellWindows
'Partie 9
For Each IE In winShell
    Set maPageHtml = IE.document
Next 'Pour toutes les pages web ouvertes
Code:
'Compare  toutes les url des pages ouvertes au mot donné, si le mot est dans l'un des url, renvoie vrai, sinon, renvoie faux
Function Test_mot_dans_URL_Existe(titre As String) As Boolean
    'Nécessite d'activer la référence
    '"Microsoft Internet Controls"
    'et
    '"Microsotf HTML Object Library"
    Dim trouve As Boolean
    Dim IE As New InternetExplorer
    Dim winShell As New ShellWindows
    Dim maPageHtml As HTMLDocument
    Test_mot_dans_URL_Existe = True
   
    trouve = False
    On Error Resume Next
    For Each IE In winShell
     
        Set maPageHtml = IE.document
         
        If (maPageHtml Is Nothing) Then
        
        Else
            If (InStr(maPageHtml.url, titre) <> 0) Then
                trouve = True
                Set maPageHtml = Nothing
            End If
        End If
        
    Next
    If trouve = True Then
        Test_mot_dans_URL_Existe = True
    Else
        Test_mot_dans_URL_Existe = False
     
    End If
    If trouve = False Then
    End If
  
End Function

Voili voilou, pardon de ne pas avoir dit avant que j'avais trouvé la solution ^^
Et merci pour ton aide :)

PS : Comment on fait pour mettre un sujet à résolu ? :)
 

Discussions similaires

Réponses
2
Affichages
264

Statistiques des forums

Discussions
312 304
Messages
2 087 065
Membres
103 451
dernier inscrit
Souleymane