s8fx
XLDnaute Nouveau
Bonjour à tous,
J'ai trouvé un très bon code pour tester si un fichier est ouvert avec gestion des erreurs.
Le pb c'est que le code fonctionne bien en local (C:\xx) ou sur le réseau (quand on connecte un lecteur réseau en lui attribuant une lettre) mais pas en distant (http:// (sans pouvoir monter ce lien en tant que lecteur réseau) )
Ce que je ne comprends car le code se base sur la même variable string (sNomWkb)
Si vous avez une idée pour débuger ce code ou l’améliorer ça serait top
(j'ai cherché sur le forum et internet je ne trouve aucune aide pour utiliser un test comme celui la via http://)
Voici le code :
Je suis sous XP, dans un domaine AD, sur une plateforme sharepoint 2003 avec Excel 2010.
Merci d'avance pour vos retours
J'ai trouvé un très bon code pour tester si un fichier est ouvert avec gestion des erreurs.
Le pb c'est que le code fonctionne bien en local (C:\xx) ou sur le réseau (quand on connecte un lecteur réseau en lui attribuant une lettre) mais pas en distant (http:// (sans pouvoir monter ce lien en tant que lecteur réseau) )
Ce que je ne comprends car le code se base sur la même variable string (sNomWkb)
Si vous avez une idée pour débuger ce code ou l’améliorer ça serait top
(j'ai cherché sur le forum et internet je ne trouve aucune aide pour utiliser un test comme celui la via http://)
Voici le code :
Code:
Option Explicit
Sub Test()
Dim i As Integer
Dim sNomWkb As String
sNomWkb = "Test.xlsm"
i = VerifClasseur("http://serveur.mondomaine/dossier/2014/" & sNomWkb)
Select Case i
Case 0: MsgBox "Classeur fermé."
Case 53:
If WOuvert(sNomWkb) = False Then
MsgBox "Fichier introuvable"
Else
MsgBox "Classeur déja ouvert."
End If
Case 70: MsgBox "Classeur déja ouvert."
Case Else: MsgBox "Erreur : " & i
End Select
End Sub
Private Function VerifClasseur(Fichier As String) As Integer
Dim x As Integer
On Error Resume Next
x = FreeFile()
Open Fichier For Input Lock Read As #x
Close x
VerifClasseur = Err.Number
On Error GoTo 0
End Function
Private Function WOuvert(sNom As String) As Boolean
Dim Wkb As Workbook
WOuvert = False
For Each Wkb In Workbooks
If Wkb.Name = sNom Then
WOuvert = True
Exit For
End If
Next Wkb
End Function
Je suis sous XP, dans un domaine AD, sur une plateforme sharepoint 2003 avec Excel 2010.
Merci d'avance pour vos retours