Gérer l'ordre de fermeture des fenêtre du même classeur

Bonsoir,

J'ai une question concernant la fermeture d'un classeur scindé en 2 fenêtres (ou +).

Je m'explique :

Pour travailler, je dois scinder le même classeur en 2 fenêtres via Affichage\Nouvelle fenêtre. J'obtiens donc les 2 fenêtres ci-dessous pour le même classeur :

- classeur:1

- classeur:2

Mon problème intervient lorsque je souhaite fermer l'une de ces 2 fenêtres.

Si je ferme la fenêtre classeur:2 => aucun problème.

En revanche, si je ferme la fenêtre classeur:1, la fenêtre classeur:2 devient la fenêtre classeur => je perds toutes les caractéristiques de chaque feuille du fichier :

- les infos de zoom

- les volets figés

- les '0' masqués dans les cellules

- etc.

Et quand il y a près de 30 feuilles dans le classeur, il est très fastidieux de reprendre pour chaque feuille ces paramètres.

Par inadvertance, ce problème arrivera quasiment quotidiennement aux utilisateurs.

Je souhaite donc empêcher la fermeture de la fenêtre classeur:1

Je vois 2 possibilités :

- soit à l'ouverture de la nouvelle fenêtre, le classeur:2 reprend exactement TOUS les paramètres du classeur principal et dans ce cas, on peut fermer indifféremment la fenêtre 2 ou 1.

- soit au moment de la fermeture de la fenêtre classeur:1, on force la fermeture de la fenêtre classeur:2

Je voulais passer par l'évènement 'Workbook_BeforeClose' mais il ne se déclenche que lorsque la dernière fenêtre du classeur se ferme.

J'avoue tourner en rond pour trouver une solution.

Merci d'avance pour votre avis !

JCA

Bonsoir JCA_73100

Pour moi, il suffit de mettre l'ouverture de chaque fenêtre dans un tableau

Sub Ouverture10Fenetres()
  Dim Ind As Integer, TabWin(10)
  For Ind = 1 To 10
    Set TabWin(Ind) = ActiveWindow.NewWindow
  Next Ind
  ' Les fermer selon l'ordre que l'on veut
  TabWin(5).Close
  TabWin(3).Close
  TabWin(2).Close
  TabWin(8).Close
  TabWin(6).Close
  TabWin(10).Close
  TabWin(4).Close
  TabWin(7).Close
  TabWin(9).Close
  ' Et garder la première ouverte
End Sub

En revanche je ne vois pas comment empêcher un utilisateur de le faire manuellement

A+

bonsoir Bruno,

Merci pour ton retour rapide !

J’ai oublié de préciser que la fermeture se fera de manière classique et non via le code : Fichier\fermer ou la croix.

Il faudrait une procédure événementielle particulière mais je ne vois pas laquelle?!

Re,

C'est bien ce dont j'avais peur malheureusement à ma connaissance, on ne peut pas intervenir

En revanche on peut utiliser dans ThisWorkbook l'évènement

Private Sub Workbook_WindowDeactivate(ByVal Wn As Window)

End Sub

Et lancer à ce moment une mise en forme du classeur

A+

Et désactiver/masquer provisoirement la croix de fermeture à la création de la fenêtre classeur:2, ce serait possible ?

Si on peut désactiver que celle de classeur:1 tant que classeur:2 existe, c'est gagné.

Je pense que ça solutionnerait déjà une bonne partie des fermetures intempestives.

Ce qui doit être possible aussi (mais bien pénible), c'est d'appliquer dès la création de la nouvelle fenêtre, toutes les caractéristiques de chaque feuille de classeur:1 à chaque feuille de classeur:2.

Mais, ça fait beaucoup d'opérations et je ne sais même pas exactement toutes les caractéristiques de la feuille qui sont à reprendre. J'ai peur d'en louper.

Je ne trouve pas grand chose sur la gestion de plusieurs fenêtres pour le même classeur... pourtant dans les faits c'est très pratique !

Rechercher des sujets similaires à "gerer ordre fermeture fenetre meme classeur"