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

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

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
 
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
 
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
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

Retour