Si vous ouvrez un classeur qui a déjà été ouvert par un autre employé, vous le verrez dans un message d’écran. Vous avez ensuite la possibilité d’ouvrir ce classeur en lecture seule ou d’attendre que le classeur soit à nouveau libre.
Pour demander si un classeur particulier est actuellement gratuit, utilisez la fonction suivante:
Function DossierEnCours(s As String) As Boolean
On Error Resume Next
Open s For Binary Access Read Lock Read As #1
Close #1
If Err.Number <> 0 Then
DossierEnCours = True
Err.Clear
End If
End Function
Sub Fichierfree()
If DossierEnCours("C:\Dossier1.xls") = False _
Then Workbooks.Open "C:\Dossier1.xls" Else _
MsgBox "Le fichier est en cours de traitement!"
End Sub
Commentaires:
■ Utilisez la méthode Open pour ouvrir le classeur avec des droits d’accès en lecture. Si ce classeur est déjà ouvert, la propriété Number de l’objet Err vous donne une erreur d’exécution> 0.
■ Dans ce cas, le classeur est déjà en cours de traitement par un autre utilisateur.