Vérifier si classeur déjà ouvert (fichier distant HTTP)

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

Voici le 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.

J'ai reussi a trouver une réponse. Je la poste si ca peut vous aider.

En fait l'idée est de faire une boucle pour parcourir tous les fichiers ouverts mais en se basant que sur le nom de fichier et pas sur le chemin+nom. Ce qui ici résout mon pb de traitement entre c:\test.xlsm et http://serveur/test.xlsm.

Dim Wb$, I%, TestPresent%
 Wb$ = "test.xlsm": TestPresent = 0
'boucle pour trouver le bon classeur nommé en variable Wb$
 For I = 1 To Workbooks.Count
'si Wb$ est trouvé alors on sort en donnant validant TestPresent à 1
  If Workbooks(I).Name = Wb$ Then TestPresent = 1: Exit For
 Next
 'on active le classeur trouvé.
 If TestPresent = 1 Then 'présent
    MsgBox Wb$ & " est présent !"
    Workbooks(Wb$).Activate
  Else 'non présent, donc on load le fichier
    MsgBox Wb$ & " n'est présent... alors on l'ouvre"
    Workbooks.Open "http://monserveur.mondomaine/" & Wb$
  End If
'on est sorti de la boucle et sur le bon classeur on peut alors faire ses actions dans ce classeur.
Rechercher des sujets similaires à "verifier classeur deja ouvert fichier distant http"