XL 2010 [VBA] pas d'alerte à l'ouverture d'un fichier déjà ouvert chez autre user

F22Raptor

XLDnaute Impliqué
Hello
J'ouvre par macro un fichier qui peut éventuellement être ouvert sur un autre poste.
Mon souhait est donc :
* ouvrir le fichier en lecture écriture
* s'il est déjà ouvert, l'ouvrir en lecture seule (sans avoir la boîte "il est ouvert chez Machin, voulez-vous l'ouvrir en lecture seule"

J'ai essayé de mettre un Application.DisplayAlerts=False juste avant le Workbooks.Open, mais j'ai tout de même la boîte d'alerte Lecture Seule ...

Une idée ?

Merci !
 

F22Raptor

XLDnaute Impliqué
le DisplayAlerts ne marche pas :(

Au pire, j'utiliserai un bout de code un peu lourdingue (ci-dessous)


Sub Verif_Fichier_Ouvert(NomFichierComplet As String, NomFichier As String)

Dim FF As Integer
Dim WB As Workbook
On Error Resume Next

FF = FreeFile

Open NomFichierComplet For Input Lock Read Write As FF
Close FF

'si fichier déjà ouvert (donc en lecture seule) alors 70, si déjà ouvert dans l'excel de l'utilisateur en lecture écriture alors 11, si ouvert
'et en lecture seule alors 22, sinon 0 (pas ouvert et disponible)
FichierOuvert = Err.Number

For Each WB In Workbooks
If WB.Name = NomFichier And FichierOuvert = 70 Then FichierOuvert = 11
If WB.Name = NomFichier And FichierOuvert = 0 Then FichierOuvert = 22
Next

End Sub
 

Discussions similaires

Statistiques des forums

Discussions
312 294
Messages
2 086 891
Membres
103 404
dernier inscrit
sultan87