vba - ouvert en lecture seule ou en écriture ?

philppe27

XLDnaute Occasionnel
Bonjour,

Y-a-t-il un code pour savoir si un fichier sur mon poste est ouvert en lecture seule ou en écriture ?

Merci d'avance,

Cordialement
 

philppe27

XLDnaute Occasionnel
Re : vba - ouvert en lecture seule ou en écriture ?

Après quelques recherches et questionnements sur le forum ci-joint un code qui permet de gérer l'ouverture en écriture d'un fichier en tenant compte de sa disponibilité:

Sub GestionOuvertureFichierEcriture()

Dim chemin As String, chemin1 As String, fich1 As String, testouv1 As String

chemin1 = Workbooks("xxx.xls").Sheets("xx").Range("AF2")
fich1 = Workbooks("xxx.xls").Sheets("xx").Range("AF3")
chemin = chemin1 & fich1

On Error Resume Next
testouv1 = Workbooks(fich1).Sheets("Produits").Range("A6")
On Error GoTo 0

If testouv1 = "Code_Pr" Then 'test si fichier ouvert sur le poste
If Workbooks(fich1).ReadOnly Then 'et test si en lecture seule
Workbooks("Facturation.xls").Activate
Sheets("Présentation").Select
Range("A1").Select
MsgBox "BordLiv n'est pas disponible pour valider" & Chr(10) & "le statut de facturation des BL" & Chr(10) & _
"Fermer BordLiv et relancer le traitement" & Chr(10) & "des statuts de facturation dans Présentation"
Else
'traitement
Application.DisplayAlerts = False
Workbooks(fich1).Save
Application.DisplayAlerts = True
End If
Else'test si le fichier n'est pas ouvert sur un autre poste
Application.EnableEvents = False
Workbooks.Open chemin
Application.EnableEvents = True
If Workbooks(fich1).ReadOnly Then

Application.EnableEvents = False
Workbooks(fich1).Close savechanges:=False
Application.EnableEvents = True

Workbooks("Facturation.xls").Activate
Sheets("Présentation").Select
Range("A1").Select
MsgBox "BordLiv est ouvert sur un autre poste" & Chr(10) & "le statut de facturation des BL ne peut être validé" & Chr(10) & _
"Fermer BordLiv et relancer le traitement" & Chr(10) & "des statuts de facturation dans Présentation"
Else
'traitement
Application.DisplayAlerts = False
Application.EnableEvents = False
Workbooks(fich1).Close savechanges:=True
Application.EnableEvents = True
Application.DisplayAlerts = True
End If
End If

End Sub
 

Discussions similaires

Statistiques des forums

Discussions
312 348
Messages
2 087 510
Membres
103 572
dernier inscrit
hamzahaha