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
.
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
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 |
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
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 |
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 |
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).
1 2 3 4 5 6 7 8 9 10 11 12 |
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
2 commentaires sur “VBA: vérifier la disponibilité de connexion Internet”
Bonjour, merci pour ce bout de code, tout à fait ce que je cherchais, du moins pour mon PC sous office 2007, mais pour mon autre PC sous office 365, j'obtiens toujours la même réponse : mon PC est connecté. qu'il le soit ou non même en mode "avion"! Que faut il modifier pour que cela fonctionne?
Merci pour vos réponses.
M. JULLEN Ph.
Bonjour Monsieur,
cela est probablement dû à la version 64-bit de votre Office 365. Je viens d'ajouter une nouvelle version de la fonction compatible avec 64-bit. Essayez celle-là.
Je viens de la tested de mon côté (également en Microsoft 365) et elle marche bien – elle détecte bien si l'ordinateur est ou n'est pas connecté à Internet.
Bàv, Martin