Trappe une window près

Dans Excel, on peut ouvrir plus d'une window pour afficher le même classur:

  • Affichage manuel> Nouvelle window
  • ou par programme ThisWorkBook.NewWindow etc.

On peut alors piéger une modification de l'activation de la window via l'événement Workbook_WindowDeactivate(ByVal Wn As Window) .

Mais existe-t-il un moyen dans Excel VBA de détecter si un user tente de fermer une window spécifique?

Notez que ce n'est pas la même chose que la fermeture de l'intégralité du classur.

Selon MSDN pour Excel 2007, " La collection Windows pour l'object Application contient toutes les windows de l'application … " (réf. Ici , mais méfiez-vous des liens brisés dans MSDN – vous devrez peut-être searchr "Window Object" dans MSDN ).

Il semble que vous ne soyez pas préoccupé par la détection d'une forme d'user, de sorte que la collection Application.Windows pourrait être utilisée. Faites une boucle dans toutes les windows lors d'un événement et vérifiez si une window dans la collection correspond à vos critères pour voir si cette window est ouverte ou non.