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.