Fichier partagé déjà ouvert ?

Comment tester si un classeur partagé est déjà ouvert par quelqu'un d'autre sur le réseau ?

Cette fonction cherche si un classeur est ouvert. Elle renvoie vrai si c'est le cas, faux si le classeur est fermé. Si l'accès au classeur est impossible, cela produit une erreur qui est gérée par la macro.

Function IsFileOpen(filename As String)
 'auteur inconnu, mpep
 Dim filenum As Integer, errnum As Integer
 
 On Error Resume Next  ' Arrête la gestion d'erreur.
 filenum = FreeFile()  ' récupère un numéro de fichier libre.
 'tentative pour ouvrir un fichier
 Open filename For Input Lock Read As #filenum
 Close filenum     ' ferme le fichier.
 errnum = Err      ' Sauvegarde du N° de l'erreur qui s'est produite.
 On Error GoTo 0    ' Reprise de la gestion d'erreur.
 
 'Détermine la nature de l'erreur qui s'est produite.
 Select Case errnum
 
  ' Pas d'erreur.
  ' Le fichier n'est pas déjà ouvert par un autre utilisateur.
  Case 0
   IsFileOpen = False
 
  ' Gestion de l'erreur "autorisation refusée"
  ' Le fichier est déjà ouvert par un autre utilisateur
 
  Case 70
   IsFileOpen = True
 
  ' Autre type d'erreur
  Case Else
   Error errnum
 End Select
 
 End Function
 

Auteur :

Mots clefs associés à cette page : , , ,