VBA: vérifier la disponibilité de connexion Internet

Pour un utilisateur avancé de VBA, ou pour un utilisateur qui utilise une application VBA qui manipule les donnés d'Internet, il peut être très intéressant, voir indispensable, de pouvoir vérifier la disponibilité de connexion Internet de l'ordinateur. Cela permet de gérer la situation où le programme VBA s'attend à ce qu'il y est une connexion Internet mais en réalité, ce n'est pas le cas.

Ainsi, le code VBA peut exécuter l'action approprié en cas de problème inattendu – et donc éviter que le code VBA continue à tourner ce qui finira probablement par une erreur d'exécution ou pire, par un résultat incorrect du programme.

Le code VBA que je vous propose est une fonction qui n'a pas besoin d'argument et qui retourne un booléen (VRAI ou FAUX) selon que la connexion à Internet est disponible ou pas.

Fonction VBA pour vérifier la connexion à Internet

Voici donc le code de la fonction. Veuillez à ce que la déclaration (= la première ligne du code) se trouve au début de votre module (avant les procédures Sub et d'autres fonctions Function ) – si cela n'est pas le cas, le code ne fonctionnera pas. La fonction elle-même (InternetDisponible) peut se trouver n'importe où dans le Module.

NOUVEAU (30/5/2023)
J’ai ajouté la version de la fonction compatible avec la structure 64-bit (utilisée dans les dernières versions d’Excel)

Version compatible 32-bit

Public Declare Function ConnexionInternetDsponible Lib "wininet.dll" Alias "InternetGetConnectedStateExA" (ByRef lpdwFlags As Long, ByVal lpszConnectionName As String, ByVal dwNameLen As Long, ByVal dwReserved As Long) As Long

Public Function InternetDisponible()
' par Excel-Malin.com ( https://excel-malin.com )

On Error GoTo ErreurFonction

'la fonction principale
InternetDisponible = CBool(ConnexionInternetDsponible(0, vbNullString, 512, 0&))

Exit Function

ErreurFonction:
    InternetDisponible = CVErr(xlErrNA)
End Function

 

Version compatible 64-bit

Public Declare PtrSafe Function ConnexionInternetDsponible Lib "wininet.dll" Alias "InternetGetConnectedStateExA" (ByRef lpdwFlags As Long, ByVal lpszConnectionName As String, ByVal dwNameLen As Long, ByVal dwReserved As Long) As Long

Public Function InternetDisponible()
' par Excel-Malin.com ( https://excel-malin.com )

On Error GoTo ErreurFonction

'la fonction principale
InternetDisponible = CBool(ConnexionInternetDsponible(0, vbNullString, 512, 0&))

Exit Function

ErreurFonction:
    InternetDisponible = CVErr(xlErrNA)
End Function

Dans la section suivante, on va voir comment utiliser cette fonction…

Exemple de procédure VBA pour vérifier la disponibilité de connexion Internet

Le code qui suit va tester si l'ordinateur est connecté à l'Internet et selon le résultat de cette vérification, il entreprendre des actions appropriées.

Attention: n'oubliez pas que pour que ce code-ci fonctionne, vous aurez besoin également du code précédent (vous devez copier/coller dans votre Module LES DEUX CODES qui se trouvent sur cette page).

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

If InternetDisponible = True Then
    'code à exécuter si la connexion Internet est disponible
    MsgBox "Ordinateur est connecté à Internet"
Else
    'code à exécuter si la connexion Internet n'est pas disponible
    MsgBox "Désolé, votre ordinateur n'est pas connecté à Internet. Veuillez réessayer plus tard..."
End If

End Sub

Comme vous pouvez constater, l'implémentation de cette fonction est très simple. Que vous soyez un utilisateur occasionnel ou développeur aguerri en VBA, cela ne peut pas vous faire de mal de suivre le principe suivant: "Mieux vaut prévenir que guérir".

A quoi sert "Excel connecté à Internet"

Peut-être, vous vous demandez à quoi bon connecter votre Excel à internet et à quoi bon utiliser VBA pour tester la disponibilité de connexion Internet

Voici quelques exemples pratiques dont les détails vous trouverez ici sur Excel-Malin.com:

Pour aller plus loin en VBA…

Et pour terminer, quelques articles sur VBA qui pourraient vous être utiles…

 

Laissez un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *

2 commentaires sur “VBA: vérifier la disponibilité de connexion Internet”