Pour tester la validité d'une page Web, il suffit de chercher à l'ouvrir :
On peut tenter d'ouvrir la page directement sous Excel, et intercepter l'erreur qui se produit
si la page n'est pas valide (Erreur d'execution 1004) :
Sub Test_page_Web_1()
URL_à_tester = InputBox("URL à tester ?", "validité de l'adresse Internet", "http://boursorama.fr")
On Error GoTo Err
Set fich = Workbooks.Open(URL_à_tester)'ouvre l'URL
fich.Close (False) 'ferme l'URL
MsgBox "l'URL " & URL_à_tester & " est valide"
Exit Sub
Err:
MsgBox "l'URL " & URL_à_tester & " ne peut pas être ouvert"
End Sub
Pour gagner du temps, on peut utiliser directement les dll qui gèrent
la connexion Internet, via une fonction API :
Private Declare Function OuvreInternet Lib "wininet" Alias "InternetOpenA" _
(ByVal sAgent As String, ByVal lAccessType As Long, ByVal sProxyName _
As String, ByVal sProxyBypass As String, ByVal lFlags As Long) As Long
Private Declare Function InternetOpenUrl Lib "wininet" Alias "InternetOpenUrlA" _
(ByVal hInternetSession As Long, ByVal lpszUrl As String, ByVal lpszHeaders As String, _
ByVal dwHeadersLength As Long, ByVal dwFlags As Long, ByVal dwContext As Long) As Long
Private Declare Function InternetCloseHandle Lib "wininet" (ByVal zaza As Long) As Integer
Sub Test_page_Web_2()
internet_ouvert = OuvreInternet("Test_validité", 1, vbNullString, vbNullString, 0) 'ouvre Internet
URL_à_tester = InputBox("URL à tester ?", "validité de l'adresse Internet", "http://boursorama.fr")
numURL = InternetOpenUrl(internet_ouvert, URL_à_tester, vbNullString, _
ByVal 0&, &H80000000, ByVal 0&) 'ouvre la page Web
If numURL > 0 Then MsgBox "l'URL " & URL_à_tester & " est valide" _
Else MsgBox "l'URL " & URL_à_tester & " ne peut pas être ouvert"
InternetCloseHandle numURL 'ferme la page
InternetCloseHandle internet_ouvert 'ferme Internet
End Sub