VBA: vérifier si fichier sur internet existe / si URL existe 2



Dans cet article, je vous propose une fonction VBA bien pratique qui vérifie deux choses:

  •  si une adresse web (= adresse URL) est valide >> c'est-à-dire si elle existe
  •  si un fichier sur internet existe

Les deux peuvent être très pratique – que vous soyez un créateur ou gestionnaire de site web ou si vous utilisez Excel ou VBA pour télécharger des fichiers à partir d'Internet.

Fonction VBA pour déterminer si un fichier sur internet existe et pour vérifier si une adresse web existe

Cette fonction utilise comme paramètre le lien vers le fichier qui se trouve (qui devrait se trouver) sur internet ou l'adresse web que vous voulez vérifier. Comme résultat, la fonction retourne la valeur Boolean égale à VRAI (TRUE) si le fichier ou adresse existe ou FAUX (FALSE) si le fichier ou l'adresse web n'existe pas…

Et voici déjà la fonction VBA. Il vous suffit de la copier/coller dans un Module de votre Projet VBA. Plus loin, vous verrez les exemples pratiques de l'utilisation de cette fonction.
 

Public Function URLexiste(URLaVerifier As String) As Boolean
'par Excel-Malin.com ( https://excel-malin.com )

On Error GoTo Erreur

Dim oXHTTP As Object
Set oXHTTP = CreateObject("MSXML2.XMLHTTP")

oXHTTP.Open "HEAD", URLaVerifier, False
oXHTTP.Send

URLexiste = (oXHTTP.Status = 200)
Exit Function

Erreur:
URLexiste = CVErr(xlErrValue)
End Function

En cas d'erreur, la fonction retourne l'erreur #VALUE!.

Exemple d'utilisation: fichier sur internet (image)

Et voici comment utiliser cette fonction pour tester si un fichier sur internet existe. Ici, pour l'exemple, on va utiliser l'image du logo de Google (disponible au 1/3/2018 – il se peut que à un moment dans le futur, ce fichier ne sera plus disponible).
 

Sub VerificationFichierSurInternet()
'par Excel-Malin.com ( https://excel-malin.com )

Dim FichierTest As String
FichierTest = "http://www.google.be//images/branding/googlelogo/2x/googlelogo_color_120x44dp.png" 'logo de Google

If URLexiste(FichierTest) = True Then
    MsgBox "Le fichier existe..."
Else
    MsgBox "Le fichier n'existe pas ou n'est pas accessible..."
End If

End Sub

Exemple d'utilisation: adresse web (URL) est-elle valide?

Et voici un exemple pour une adresse web. Il peut s'agir directement du domaine principale (comme: fr.wikipedia.org ) ou d'une sous-page du site internet (comme dans l'exemple ci-dessous).
 

Sub VerificationAdresseURL()
'par Excel-Malin.com ( https://excel-malin.com )

Dim URLTest As String
URLTest = "https://excel-malin.com/a-propos/"

If URLexiste(URLTest) = True Then
    MsgBox "Cette adresse web existe..."
Else
    MsgBox "Cette adresse web n'existe pas ou n'est pas accessible..."
End If
End Sub

Conclusion

Vous voici parés pour l'exploration du grand réseau qu'est Internet. L'avantage de cette fonction VBA est qu'elle est très rapide. Elle sera donc parfaite pour une utilisation en masse via une boucle. Vous pourrez ainsi télécharger des dizaines, voir centaines de fichiers depuis l'internet ou encore vérifier des longues listes des adresses URL… C'est un bon exemple pour démontrer que le VBA peut facilement être utilisée pour l'automatisation des tâches relatives à Internet.

 

7 0




Laissez un commentaire

Votre adresse de messagerie ne sera pas publiée.

2 commentaires sur “VBA: vérifier si fichier sur internet existe / si URL existe

    • excel-malin.com Auteur du billet

      Bonjour Christian,
      pour cela, il vous suffit d'utiliser la fonction FollowHyperlink .

      Donc, par exemple, dans le code "Sub VerificationAdresseURL()" plus haut, il vous suffit de remplacer le code:
      MsgBox "Cette adresse web existe..." (ligne 8)
      par le code suivant:
      ActiveWorkbook.FollowHyperlink Address:=URLTest

      Ce nouveau code va ouvrir la page web dans votre navigateur par défaut.
      Bien à vous… Martin