Msg erreur en quittant

  • Initiateur de la discussion Patrick
  • Date de début
P

Patrick

Guest
J'ai un peu alambiqué mon message sur les menus personnalisés. Pour être plus clair, comment faire, lorsque deux fichiers sont ouverts et que l'on veut quitter, pour que les instructions ne s'appliquent qu'au fichier pour lequel elles ont été créées? L'un ne contient rien dans le module Workbook_BeforeClose, le second oui (il fait référence à des plages nommées). Si j'essaie de fermer, le second fichier essaie d'appliquer les instructions contenues dans Workbook_BeforeClose, au premier, qui n'en contient pas, ce qui génére un message d'erreur. J'espère avoir été plus clair. Je ne me sors pas du guêpier…
Patrick
 

_Thierry

XLDnaute Barbatruc
Repose en paix
Bonsoir Patrick, le forum

1) arf déjà ====> Charte illico/presto

2) même en tentant de comprendre je ne te suis pas....

Il est impossible, enfin non rien n'est impossible, mais bon, que l'évènementielle 'Workbook_BeforeClose' fasse autre chose sur un autre classeur à moins que tu ne lui spécifie...

Premier contact
Bonne Nuit
@+Thierry (toujours en WF !!! sans alim)
 
P

Patrick

Guest
Je vais tenter d'être plus clair. J'ai créé un fichier A avec toute une série de macros et d'instructions. Seul, il fonctionne très bien. Il demande un mot de passe à l'ouverture: selon le mot de passe saisi, le programme se comporte différemment (accès ou non à certaines feuilles, macros accessibles ou non, etc). Lorsque je le quitte, l'événement Workbook_BeforeClose contient des instructions If: If Range('Mot_de_passe').Value = 'x' Then ... etc.

Le problème se pose lorsque j'ouvre un nouveau fichier B. Celui-ci ne contient pas de macros aussi complexes (et rien dans l'événement Workbook_BeforeClose). Lorsque j'ai ces deux fichiers ouverts et que je ferme Excel, il me signale une erreur qui fait référence à l'événement If évoqué plus haut. C'est comme si Excel cherchait la plage Range('Mot de passe') dans le fichier B, qui ne contient pas de plages nommées. Je rappelle que lorsque je n'ai que le fichier A ouvert, la fermeture ne pose aucun problème. J'ajoute qu'il n'y a aucune liaison entre les fichiers.

Charte illico presto? Là c'est moi qui n'ai pas compris…
 

PascalXLD

XLDnaute Barbatruc
Modérateur
Bonjour

Pour la charte si tu n'as pas compris c'est que tu n'as pas lu. Alors relis là avec attention par exemple § 1 mais lis jusqu'au bout c'est très instructif

Bon pour ton problème il suffit peut-être tout simplement de rajouter le nom de ton classeur dans ta macro

du genre

If Workbooks('ClasseurA.xls').sheets('Bidule').Range('Mot_de_passe').Value = 'x' Then

Bon courage et bonne lecture ASSIDUE
 

Discussions similaires

Membres actuellement en ligne

Statistiques des forums

Discussions
312 472
Messages
2 088 709
Membres
103 928
dernier inscrit
MIKETUAU