Vérifier si un fichier est en cours d’édition avec Excel VBA

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.

S’abonner
Notifier de
0 Commentaires
Inline Feedbacks
Voir tous les commentaires

Initiation à Excel

Fonctions Excel

Excel VBA

Macros VBA Utiles

Plus d'outils

Sur Facebook

Sur YouTube

0
Nous aimerions avoir votre avis, veuillez laisser un commentaire.x