XL 2019 Créer un message d'erreur si lien internet inaccessible

gilboss

XLDnaute Nouveau
Bonjour,
J'ai fait un fichier excel avec à l'ouverture un contrôle vers un fichier qui est sur un serveur et cela marche très bien.
J'ai fait un essai en fermant mon accès internet et là evidemment, quand j'ai ouvert mon fichier, j'avais un message d'erreur du système. Ce message me propose d'ouvrir ou pas mon fichier. Si je ne l'ouvre pas, pas de problème par la suite. Par contre si je l'ouvre, mon fichier va chercher les infos qu'ils n'a pas et va se planter. Par la suite mon fichier ne s'ouvre plus même avec l'internet ouvert.

Ce que je voudrais faire, c'est une macro de contrôle du bon accès du lien internet quand j'ouvre mon fichier.
Si Ok il continue.
Si pas d'accès, un message perso s'ouvre pour avertir et ferme le fichier quand on efface le message.
J'aimerai savoir si c'est possible et quel code VBA il faut.

Merci à vous
 

sylvanu

XLDnaute Barbatruc
Supporter XLD
Bonsoir Gilboss,
Moi j'utilise cette fonction, à tester :
VB:
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()
' Si internet présent alors InternetDisponible=true sinon false
' 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
et dans le programme :
Code:
If InternetDisponible = False Then          ' Internet non disponible
    MsgBox ("Internet non disponible.")
    Exit Sub
End If
 

gilboss

XLDnaute Nouveau
Finalement, jai trouvé une macro qui correspond bien à ma demande. Elle ne vérifie pas l'accès à internet mais la présence du fichier à rechercher. J'ai coupé mon accès et le message " Le fichier n'existe pas ou n'est pas accessible..." est apparu.
Nickel !
Voici le fichier si quelqu'un le recherche.


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 = False
End Function

Sub VerificationFichierSurInternet()
'par Excel-Malin.com ( https://excel-malin.com )
Dim FichierTest As String
FichierTest = "https://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
 

patricktoulon

XLDnaute Barbatruc
bonsoir
sinon
declaration en 64
VB:
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

Attention!! à l'object MSXML2.XMLHTTP ou microsoft.xmlhttp
cet object est amené certainement (du au fait qu'il fait partie de la librairie IE) à disparaître sur W10 et 11
 

Discussions similaires

Réponses
14
Affichages
824
Réponses
5
Affichages
212

Statistiques des forums

Discussions
312 206
Messages
2 086 222
Membres
103 158
dernier inscrit
laufin