tester si un fichier est ouvert

R

rico

Guest
Bonjour à tous,

j'ai fait une macro qui ouvre un fichier pour copier un certain nombre de cellule avec liaison... malheureusement cette macro plante si le fichier en question est ouvert... Est-ce qu'il y a une instruction qui permet de faire ce test?

@+
 
R

Romuald

Guest
Lorsque tu ouvres ton classeur en VBA, tu as une propriété ReadOnly sur l'objet correspondant au classeur qui te permet de déterminer si tu l'as ouvert en lecture seule (ce qui est le cas si il est déjà ouvert).

Ex :
Set wks= Workbooks.Open(FullPathFile, False, False, , , , True, , , , False)
Application.DisplayAlerts = True
' Vérification de l'accès au fichier en écriture
If wks.ReadOnly Then
error = "Unable to open workbook in write mode. "
Application.DisplayAlerts = False
wks.Close False
Application.DisplayAlerts = True
Exit Sub
End If
 
R

rico

Guest
Merci Romuald,

je vais utiliser ton code... pour vérifier que le fichier n'est pas ouvert sur un autre poste...

mais en fait je cherchais autre chose :
la macro que je crée est succeptible d'être lancée plusieurs fois de suite donc je cherche à savoir si le fichier que je vais ouvrir est déjà ouvert (et modifié et non enregistré)...
 
M

michel

Guest
bonsoir Rico et Romuald

la macro ci dessous affiche un message si le fichier nommé "classeur6" est ouvert et non sauvegardé

Sub TestSiOuvertEtModifie()
Dim Wb As Workbook
On Error Resume Next
Set Wb = Workbooks("classeur6.xls") 'adapter le nom du classeur
If Not Wb Is Nothing And Wb.Saved = False Then MsgBox "le fichier est deja ouvert et non sauvegardé . "
End Sub

bonne soirée
michel
lapin4.gif
 

Discussions similaires

Membres actuellement en ligne

Statistiques des forums

Discussions
312 084
Messages
2 085 194
Membres
102 811
dernier inscrit
caroline29260