Faire disparaître menus et barres puis les restaurer

J'ouvre un document2 à partir de l'Explorateur Windows et je ne veux voir apparaître aucune barre d'outils et de menu dans ce document. Comment faire ça avec une macro Workbook_Open et surtout, que faire avec ma macro Workbook_BeforeClose ? Maintenant, si avant d'ouvrir mon document2, il y avait un document1 activé, comment rendre au document1 la même apparence quand je ferme mon document2 ?

Le code suivant permet de faire cela. Il est à coller dans le module ThisWorkbook du classeur Document2.
Attention, la ligne suivante
Dim Barres As Collection
doit se trouver en début de module, avant la première procédure, mais après les éventuelles lignes Option Explicit et Option Base

Private sub Workbook_Activate()
  Dim Barre As CommandBar
  Set Barres = New Collection
  For Each Barre In Application.CommandBars
    If Barre.Visible = True And _
      Barre.Name <> "Worksheet Menu Bar" Then
      Barres.Add Barre.Name
      Barre.Visible = False
    End If
  Next Barre
  Application.CommandBars("worksheet menu bar").Enabled = False
 end sub
Private sub Workbook_Deactivate()
  Dim Barre As Variant
  For Each Barre In Barres
    Application.CommandBars(Barre).Visible = True
  Next Barre
  Application.CommandBars("worksheet menu bar").Enabled = True
 end sub

Fonctionnement : A l'activation du classeur, Excel remplit une collection avec les noms des barres visibles, sauf la barre de menu, puis rend ces barres invisibles. La barre de menu est désactivée en fin de macro. A la désactivation du classeur, excel scanne la collection et rend visible les différentes barres qui la composent, puis la barre de menu est réactivée.

Auteur :

Mots clefs associés à cette page : , , , , , , , , , ,