XL 2016 Interdire ou pas la fermeture d'un classeur

vgendron

XLDnaute Barbatruc
Bonjour le forum
me voici avec une question qui vient de se poser à moi...

j'ai deux classeurs xlsm ouverts en meme temps
le premier: GTA.xlsm qui ouvre le second: FVPR.xlsm
le GTA étant l'application principale qui travaille sur le FVPR

il arrive parfois que les gens ferment le FVPR par erreur===> le GTA se trouve ainsi perdu et plante
j'ai donc ajouté dans le "thisworkbook" du FVPR
VB:
Private Sub Workbook_BeforeClose(cancel as boolean)
for each wb in application.workbooks
   if wb.name like "GTA*" then
        msgbox ("Vous ne pouvez pas fermer le FVPR, car il est utilisé par le GTA")
        cancel =true
   end if
next wb
end sub

ca marche très bien: MAIS ca fonctionne tellement bien que.. lorsque le GTA veut fermer le fichier.. et bah.. il ne peut pas non plus...

comment puis je faire pour interdire la fermeture du FVPR SAUF au GTA
y aurait il une option quelque part qui dirait au FVPR d'ou vient l'ordre de fermeture??

merci pour vos idées d'avant week end 🙃
 

Dranreb

XLDnaute Barbatruc
Bonsoir.
Il y a un moyen simple pour faire en sorte qu'un classeur de macro ne puisse être fermé si d'autres classeurs en ont besoin. C'est de cocher le nom du projet VBA du classeur de macro dans les références des projets devant l'empêcher d'être fermé. Mais du même coup l'ouverture d'un des classeurs qui l'ont, provoquera d'office son ouverture. Pour pouvoir faire ça, il faut bien sûr que le projet VBA du classeur de macro ait été renommé différemment de celui de celui des autres, qui est en général "VBAProject" par défaut. Il est à noter que dans ce cas tous les modules, procédures et variables Public du projet du classeur de macros sont connus dans les projets qui l'ont en référence.
 
Dernière édition:

Discussions similaires