Bonjour,
Je vous écris car je n'arrive pas à faire fonctionner un ClearContents dans une Sub Workbook_BeforeClose. Je travaille sur Mac donc j'aimerais savoir si vous rencontrez le même problème que moi. J'explique dans un premier temps mon problème puis vous propose de tester avec les fichiers mis en exemple. Je vous serrais infiniment reconnaissant si vous pouviez me donner un retour
J'utilise plusieurs classeurs. Un classeur peut appeler la fermeture d'un autre par du code VBA. Dans chacun de mes classeurs, j'utilise une Sub Workbook_BeforeClose qui vient entre autres choses effacer certaines de leurs cellules à leur fermeture.
A priori pas de problème avec la Sub Workbook_BeforeClose, car lorsque je ferme manuellement mes classeurs, mes cellules sont bien effacées.
Cependant, lorsqu'un classeur appelle la fermeture d'un autre, je remarque que les lignes de code avec du .ClearContents ne fonctionnent pas. Le code ne renvoie pas d'erreur, et il est bien lu (j'ai pris soin de créer une ligne de code indiquant dans une cellule de mes classeurs que la Sub Workbook_BeforeClose a bien été lue), mais tout se passe comme si les .ClearContents étaient sautés.
Pour vous illustrer simplement le problème voici en lien 2 fichiers:
- le fichier 1 contient une macro pour fermer le fichier 2
- le fichier 2 contient en A1 une cellule qui doit-être effacée à la fermeture par Sub Workbook_BeforeClose. En A2, cette-même Sub indique par un message qu'elle a bien été lue.
Merci d'essayer:
1. Ouvrez le fichier 2, inscrivez quelque chose en A1. Fermez le fichier 2, ouvrez le à nouveau. Si vous avez comme moi, alors la Sub de fermeture a bien été lue comme indiquée en A2 et le contenu d'A1 a été effacé.
2. Ouvrez le fichier 2 et inscrivez à nouveau quelque chose en A1. Ouvrez le fichier 1. Cliquer la macro demandant la fermeture du fichier 2. Après fermeture sa fermeture, ouvrez à nouveau le fichier 2. Si vous avez comme moi, alors la cellule grisée n'a pas été effacée alors qu'il est pourtant bien indiqué en A2 que Sub Workbook_BeforeClose a bien été lue (.ClearContents inopérant????)
Merci infiniment
Hugo