Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

éviter la double ouverture d'un classeur

  • Initiateur de la discussion Initiateur de la discussion kinel
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

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
 
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
 
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:
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
 
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
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

  • Question Question
XL 2021 VBA excel
Réponses
4
Affichages
371
Réponses
5
Affichages
705
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…