Avertissement fichier est verrouillé pour modification par
Le
rmill...

Bonjour,
Si un fichier est déjÍ ouvert par un autre utilisateur et que je tente de l'ouvrir j'obtiens un message Í l'effet que le fichier est verrouillé pour modification par l'autre utilisateur. Et c'est parfait.
Mais lorsque j'ouvre le fichier par code VBA je n'obtiens pas ce message. Je souhaiterais bien que oui. J'ai placé le code ci-dessous très simple.
Selon vous y a t'il moyen de l'obtenir mais en l'ouvrant par VBA? Merci Í l'avance.
'********************************************************
Workbooks.Open ThisWorkbook.Sheets(Feuil1.Name).Range("CN_ValidXLCaseModelPath").Value, Password:þuil1.Range("CN_ValidXLCasePwd").Value
Si un fichier est déjÍ ouvert par un autre utilisateur et que je tente de l'ouvrir j'obtiens un message Í l'effet que le fichier est verrouillé pour modification par l'autre utilisateur. Et c'est parfait.
Mais lorsque j'ouvre le fichier par code VBA je n'obtiens pas ce message. Je souhaiterais bien que oui. J'ai placé le code ci-dessous très simple.
Selon vous y a t'il moyen de l'obtenir mais en l'ouvrant par VBA? Merci Í l'avance.
'********************************************************
Workbooks.Open ThisWorkbook.Sheets(Feuil1.Name).Range("CN_ValidXLCaseModelPath").Value, Password:þuil1.Range("CN_ValidXLCasePwd").Value
Bonjour,
Regarde ce fichier https://www.cjoint.com/c/JKymvxiNEUj
Tu peux définir directement dans le code, le message que tu veux
afficher lorsque tu ouvres un fichier déjÍ ouvert.
À tester!
MichD
Cette version est probablement meilleure!
Un bout de code dans le module standard et dans le Thisworkbook
ttps://www.cjoint.com/c/JKynucZ63vj
MichD
La procédure dans le ThisWorkbook de ce fichier
https://www.cjoint.com/c/JKynucZ63vj devrait plutÍ´t être celle-ci :
'--------------------------
Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As
Boolean)
If IsFileOpen(ThisWorkbook.Name) Then
MsgBox "Ce fichier est en lecture seule", vbCritical + vbOKOnly,
"Attention"
Else
If ThisWorkbook.ReadOnly Then
ThisWorkbook.ChangeFileAccess xlReadWrite
End If
End If
End Sub
'--------------------------
MichD
est ouvert ailleurs, si oui, tu affiches le message que tu désires et
préviens l'usager. DéjÍ , tu sais que le fichier sera en lecture seule
s'il existe déjÍ une copie déjÍ ouverte.
La difficulté que présente ce type de fichier provient au moment
d'enregistrer les modifications.
Dans l'événement approprié dans le ThisWorkbook (before save), tu testes
Í nouveau si le fichier est toujours ouvert dans une autre instance
d'Excel, par la négative tu modifies l'état du fichier en mode lecture
seule pour le mode "ReadWrite", suivi de la sauvegarde.
La fenêtre de "Notification" se produit avant l'ouverture du classeur.
En vba, tu ouvres directement le classeur avant que la fenêtre de
notification ait eu la chance de se manifester.
Comme je n'ai jamais travaillé en réseau, je n'ai jamais eu Í trouver le
nom de l'usager qui avait déjÍ ouvert un fichier particulier dans une
autre instance d'Excel.
Bonne continuation!
MichD