éviter la double ouverture d'un classeur

kinel

XLDnaute Occasionnel
Bonjour le forum

j'ai essayé ce code pour empêcher, par macro, la seconde ouverture d'un classeur
ça fonctionne bien à la première ouverture mais pas à la seconde

merci de vos lumières

Kinel

j'appelle la macro IsWorkBookOpen dans le Private Sub Workbook_Open()

Sub IsWorkBookOpen()
Dim wBook As Workbook

On Error Resume Next
Set wBook = Workbooks("C:\FLK\mon classeur.xls")

If wBook Is Nothing Then 'Not open
Application.DisplayAlerts = False
MsgBox "Workbook is not open"

Set wBook = Nothing
Sheets("Feuil1").Select
On Error GoTo 0

Else 'It is open
Application.DisplayAlerts = False
MsgBox "Yes it is open"

Set wBook = Nothing

On Error GoTo 0

End If

End Sub
 

kinel

XLDnaute Occasionnel
Re : éviter la double ouverture d'un classeur

Bonjour Jean Marcel
Merci pour cette proposition
j'ai bien essayé mais sans succès
j'ai toujours la fenêtre excel qui propose oui ou non
si l'un des multiples utilisateurs répond oui le travail du précédent est perdu

Kinel
 

Dranreb

XLDnaute Barbatruc
Re : éviter la double ouverture d'un classeur

Bonjour.
Un classeur ouvert est connu sous son nom de fichier, pas sous son chemin. Donc remplacer
Set wBook = Workbooks("C:\FLK\mon classeur.xls") par
Set wBook = Workbooks("mon classeur.xls")
Cela dit quand on ouvre un classeur il devient de toutes façon d'office le classeur actif, donc j'essaye en général plutôt d'abord de l'activer.

Remarque: La proposition de Jean-Marcel, bien qu'hors sujet, je pense, par erreur d'interprétation, me donne à penser que quitte à écrire une procédure séparée pour isoler la difficulté de son contexte, autant écrire une fonction qui renverrait un objet WorkBook, avec comme 1èr paramètre le Chemin qu'il devrait avoir, le second, une option indiquant si on souhaite qu'il devienne le classeur actif, une troisième, Boolean aussi, s'il serait gênant qu'il se retrouve ReadOnly du fait qu'il est déjà ouvert par quelqu'un d'autre.
Bref une fonction qui gérerait tout problème d'un classeur souhaité ouvert, qui l'est peut être déjà (par soit même ou un par un autre usager)
 
Dernière édition:

kinel

XLDnaute Occasionnel
Re : éviter la double ouverture d'un classeur

bonjour Dranreb
re bjr Jean marcel

ce que je cherche surtout c'est éviter de perdre un travail dans le classeur ouvert en premier
pour l'instant si je fais oui je perd les saisies du premier classeur
j'en ai fait les frais moi même en perdant un après midi de travail car un collègue avait répondu oui

merci de votre aide

Kinel
 

kinel

XLDnaute Occasionnel
Re : éviter la double ouverture d'un classeur

effectivement Jean Marcel, quand j'ouvre excel une seconde fois et qu'ensuite j'ouvre le même classeur excel me propose la lecture seule
mais le soucis est que personne n'ouvre excel avant, tous les utilisateurs passent par un doubleclic sur le fichier directement
et là dur dur pour le premier utilisateur !

Kinel
 

Discussions similaires

Réponses
3
Affichages
158

Statistiques des forums

Discussions
312 285
Messages
2 086 783
Membres
103 391
dernier inscrit
lrol