XL 2010 Savoir si classeur partagé est ouvert (VBA)

Adeus33

XLDnaute Occasionnel
Bonjour le forum,

J'utilise la fonction (provenant du site microsoft) ci dessous afin de savoir si un fichier est ouvert ou pas, pour les classeurs non partagés, ce code fonctionne parfaitement mais ce n'est pas le cas pour les classeurs partagés.
Dans tous les cas, il me dit que le fichier n'est pas ouvert...

Avez vous une solution ?

Bonne soirée et merci d'avance pour votre aide

Code:
Function IsFileOpen(filename As String)
    Dim filenum As Integer, errnum As Integer

    On Error Resume Next
    filenum = FreeFile()
  
    Open filename For Input Lock Read As #filenum
    Close filenum      
    errnum = Err       
    On Error GoTo 0   

    Select Case errnum
        Case 0
         IsFileOpen = False

        Case 70
            IsFileOpen = True

        Case Else
            Error errnum
    End Select

End Function
 

Lone-wolf

XLDnaute Barbatruc
Bonjour Adeus

Une autre proposition

VB:
Function ClasseurOuvert(Fichier As String)
Dim NumeroFichier As Long, NumeroErreur As Long
    On Error Resume Next
    NumeroFichier = FreeFile()
    Open Fichier For Input Lock Read As #NumeroFichier
    Close NumeroFichier
    NumeroErreur = Err
    On Error GoTo 0
    Select Case NumeroErreur
    Case 0:    ClasseurOuvert = False
    Case 70:   ClasseurOuvert = True
    Case Else: Error NumeroErreur
    End Select
End Function

Sub TestClasseurOuvert()
    Dim Verifier As Boolean
    Dim Fichier As String
    Dim Nom As String
   
    Fichier = "C:\Users\" & Environ("UserName") & "\Desktop\Data.xlsm"
    Nom = "Data.xlsm"
   
    If Len(Dir(Fichier)) = 0 Then
        MsgBox "Le Classeur: " & Nom & " n'existe pas..."
        Exit Sub
    Else
    End If
   
    Verifier = ClasseurOuvert(Fichier)
    If Verifier = True Then
        MsgBox "Le Classeur: " & Nom & " est ouvert..."
    Else
        MsgBox "Le Classeur: " & Nom & " n'est pas ouvert..."
    End If
End Sub
 

Adeus33

XLDnaute Occasionnel
Bonjour Lone-Wolf et merci pour votre aide.

J'ai le même problème, la macro me dit que le fichier est fermé alors qu'il est bien ouvert sur mon poste (par contre si j'enlève le partage du classeur, le code fonctionne...)

Avez vous d'autres idées ?

Merci d'avance
 

Discussions similaires

Réponses
19
Affichages
2 K

Statistiques des forums

Discussions
312 215
Messages
2 086 319
Membres
103 177
dernier inscrit
grizly