OVH Cloud OVH Cloud

Empêcher l'ouverture d'un fichier ouvert

5 réponses
Avatar
Four à Pain
Bonjour

Je cherche à empêcher l'ouverture d'un fichier s'il est déjà ouvert

Merci si vous avez une idée

5 réponses

Avatar
Ardus Petus
Dim wb as workbook

on error resume next
set wb = Workbooks("Classeur.xls")
if not wb is nothing then
msgbox "Déjà ouvert"
else
set wb = workbooks.open("Classeur.xls")
end if

Cordialement,
--
AP
Avatar
Four à Pain
J'ai pas été asssez précis dans mon 1er mail
Mon fichier est à dispo de plusieurs utilisateurs sur le réseau.
Je veux empêcher l'ouverture simultané d'un fichier excel.
Si A ouvre le fichier je ne veux pas qu'un autre utiliseur puisse l'ouvrir
tant qu'il n'a pas été fermé par A


"Ardus Petus" a écrit dans le message de
news:
| Dim wb as workbook
|
| on error resume next
| set wb = Workbooks("Classeur.xls")
| if not wb is nothing then
| msgbox "Déjà ouvert"
| else
| set wb = workbooks.open("Classeur.xls")
| end if
|
| Cordialement,
| --
| AP
|
|
|
|
|
Avatar
Ardus Petus
Avec un répertoire qui sert de sémaphore (dans le code de ThisWorkBook)

'---------------------

Private Sub Workbook_Open()
On Error GoTo ErrHandler
MkDir Me.FullName & ".sem"
Exit Sub

ErrHandler:
MsgBox "Le Fichier est en cours d'utilisation"
End Sub

Private Sub Workbook_BeforeClose(Cancel As Boolean)
RmDir Me.FullName & ".sem"
End Sub
'-------------------------
"Four à Pain" a écrit dans le message de
news:443cd3b1$
J'ai pas été asssez précis dans mon 1er mail
Mon fichier est à dispo de plusieurs utilisateurs sur le réseau.
Je veux empêcher l'ouverture simultané d'un fichier excel.
Si A ouvre le fichier je ne veux pas qu'un autre utiliseur puisse l'ouvrir
tant qu'il n'a pas été fermé par A


"Ardus Petus" a écrit dans le message de
news:
| Dim wb as workbook
|
| on error resume next
| set wb = Workbooks("Classeur.xls")
| if not wb is nothing then
| msgbox "Déjà ouvert"
| else
| set wb = workbooks.open("Classeur.xls")
| end if
|
| Cordialement,
| --
| AP
|
|
|
|
|




Avatar
Ardus Petus
Ooops: je ne fermais pas le classeur!

'----------------
Private Sub Workbook_Open()
On Error Resume Next
MkDir Me.FullName & ".sem"
If Err = 0 Then Exit Sub
On Error GoTo 0
MsgBox "Le Fichier est en cours d'utilisation"
Application.EnableEvents = False
Me.Close
Application.EnableEvents = True
End Sub

Private Sub Workbook_BeforeClose(Cancel As Boolean)
RmDir Me.FullName & ".sem"
End Sub
'-------------------------

Cordialement,
--
AP

"Ardus Petus" a écrit dans le message de
news:
Avec un répertoire qui sert de sémaphore (dans le code de ThisWorkBook)

'---------------------

Private Sub Workbook_Open()
On Error GoTo ErrHandler
MkDir Me.FullName & ".sem"
Exit Sub

ErrHandler:
MsgBox "Le Fichier est en cours d'utilisation"
End Sub

Private Sub Workbook_BeforeClose(Cancel As Boolean)
RmDir Me.FullName & ".sem"
End Sub
'-------------------------
"Four à Pain" a écrit dans le message de
news:443cd3b1$
J'ai pas été asssez précis dans mon 1er mail
Mon fichier est à dispo de plusieurs utilisateurs sur le réseau.
Je veux empêcher l'ouverture simultané d'un fichier excel.
Si A ouvre le fichier je ne veux pas qu'un autre utiliseur puisse
l'ouvrir


tant qu'il n'a pas été fermé par A


"Ardus Petus" a écrit dans le message de
news:
| Dim wb as workbook
|
| on error resume next
| set wb = Workbooks("Classeur.xls")
| if not wb is nothing then
| msgbox "Déjà ouvert"
| else
| set wb = workbooks.open("Classeur.xls")
| end if
|
| Cordialement,
| --
| AP
|
|
|
|
|








Avatar
Four à Pain
Merci, c'est exactement ce que je voulais faire;
J'aurais jamais pensé créer un répertoire à l'ouverture et m'en servir pour
effectuer le contrôle


"Ardus Petus" a écrit dans le message de
news:%23UPcS$
| Ooops: je ne fermais pas le classeur!
|
| '----------------
| Private Sub Workbook_Open()
| On Error Resume Next
| MkDir Me.FullName & ".sem"
| If Err = 0 Then Exit Sub
| On Error GoTo 0
| MsgBox "Le Fichier est en cours d'utilisation"
| Application.EnableEvents = False
| Me.Close
| Application.EnableEvents = True
| End Sub
|
| Private Sub Workbook_BeforeClose(Cancel As Boolean)
| RmDir Me.FullName & ".sem"
| End Sub
| '-------------------------
|
| Cordialement,
| --
| AP
|
| "Ardus Petus" a écrit dans le message de
| news:
| > Avec un répertoire qui sert de sémaphore (dans le code de ThisWorkBook)
| >
| > '---------------------
| >
| > Private Sub Workbook_Open()
| > On Error GoTo ErrHandler
| > MkDir Me.FullName & ".sem"
| > Exit Sub
| >
| > ErrHandler:
| > MsgBox "Le Fichier est en cours d'utilisation"
| > End Sub
| >
| > Private Sub Workbook_BeforeClose(Cancel As Boolean)
| > RmDir Me.FullName & ".sem"
| > End Sub
| > '-------------------------
| > "Four à Pain" a écrit dans le message de
| > news:443cd3b1$
| > > J'ai pas été asssez précis dans mon 1er mail
| > > Mon fichier est à dispo de plusieurs utilisateurs sur le réseau.
| > > Je veux empêcher l'ouverture simultané d'un fichier excel.
| > > Si A ouvre le fichier je ne veux pas qu'un autre utiliseur puisse
| l'ouvrir
| > > tant qu'il n'a pas été fermé par A
| > >
| > >
| > > "Ardus Petus" a écrit dans le message de
| > > news:
| > > | Dim wb as workbook
| > > |
| > > | on error resume next
| > > | set wb = Workbooks("Classeur.xls")
| > > | if not wb is nothing then
| > > | msgbox "Déjà ouvert"
| > > | else
| > > | set wb = workbooks.open("Classeur.xls")
| > > | end if
| > > |
| > > | Cordialement,
| > > | --
| > > | AP
| > > |
| > > |
| > > |
| > > |
| > > |
| > >
| > >
| >
| >
|
|