Verifier si un chemin externe est existant

jjjerome

XLDnaute Occasionnel
Bonjour le forum,

Je fais de nouveau appel à vous, car je rentre un problème lorsque qu'un chemin externe est éxistant.

J'utilise le code ci-dessous :
Code:
If Chemin <> "" Or Dir(Chemin, vbDirectory) <> "" Then
        Application.Run "Enregistersous"
  
        If Chemin = "" Or Dir(Chemin, vbDirectory) = "" Then
msga = MsgBox("Fichier non accessible, vérifier que le connexion Internet est Ok et que le VPN est UP", vbAbortRetryIgnore + vbCritical, "Accès au VPN")

Quand le chemin externe est éxistant, pas de problème tout fonctionne.
Par contre lorsque le chemin est inexistant, après un long moment j'obtient le message d'erreur 52...

Pour info, j'utilise un VPN pour accéder au chemin externe.
 

MJ13

XLDnaute Barbatruc
Re : Verifier si un chemin externe est existant

Re

Peut être, mais le but est justement de vérifier si le VPN est UP et si le chemin est bien accéssible

Et bien alors, si tu as un chemin qui existe et qu'il ne le détecte pas, c'est qu'il est down :eek:. Sinon, il doit y avoir d'autres méthodes. Fait une petite recherche sur le net.
 

camarchepas

XLDnaute Barbatruc
Re : Verifier si un chemin externe est existant

Bonjour , Jérome Mj13 , Laurent et aux membres et visiteurs du forum

Pour ce genre de problème soit il faut traiter par API interposée ou par gestion des erreurs.

Voici donc par gestion d'erreur:
Test réseau appelle la fonction fichierRéseauok avec comme paramètre chemin et nom de fichier.
Le on error resume next permet de passer à l'instruction suivant celle ayant provoquée l'erreur.

l'on récupere donc le numéro de l'erreur puis l'on réactive la gestion d'erreur normale.

Ensuite si il n'y à pas de numéro d'erreur , c'est que tout est ok et l'on monte le drapeau de sortie de fonction

Code:
Sub test_reseau()
 Dim Autorisation As Boolean
 Autorisation = FichierRéseauOk("\\FREEBOX\Disque dur\A_Moi\centre_du_service_national_versailles.pdf")
 if autorisation then 
   ' Traitement
  else
    msgbox "Fichier introuvable"
 end if
End Sub

Function FichierRéseauOk(Cible As String) As Boolean
'Vérifie existance d'un fichier
Dim Numéro As String
 On Error Resume Next
  Open Cible For Input As #8
  If Err.Number <> 0 Then Numéro = Err.Number
 On Error GoTo 0
 Close #8
 FichierRéseauOk = IIf(Numéro <> "", False, True)
End Function
 
Dernière édition:

Discussions similaires

Réponses
1
Affichages
333
Compte Supprimé 979
C
Réponses
7
Affichages
2 K

Statistiques des forums

Discussions
312 489
Messages
2 088 855
Membres
103 977
dernier inscrit
Hermet