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
.
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
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:
- Télécharger un fichier (image, pdf,…) à partir d'Internet avec VBA – là, je crois qu'il ne faut pas trop d'explications
- Obtenir le code HTML d'une page web avec VBA – pour ensuite en extraire les informations
- …
Pour aller plus loin en VBA…
Et pour terminer, quelques articles sur VBA qui pourraient vous être utiles…
- Liste de toutes les fonctions VBA
- Calculer la SOMME en VBA
- Comment utiliser RECHERCHEV en VBA
- VBA: Comment manipuler des fichiers
- et pour vous inspirer voici quelques Outils Excel pratiques à télécharger créés principalement grâce à VBA