Masquer et afficher barres, onglets et entêtes

Bonjour,

J’ai développé une application comprenant plusieurs feuilles Excel et des macros VBA. J’ouvre le classeur avec la procédure suivante pour masquer la plupart des barres de commandes, les onglets et les entêtes de colonnes.

Private Sub Workbook_Open()
Dim wsSheet As Worksheet
Dim sSheetStart
    Set sSheetStart = ActiveSheet
    ActiveWindow.DisplayWorkbookTabs = False
    With Application
    .DisplayFullScreen = False
    .DisplayFormulaBar = False
    .CommandBars("Worksheet Menu Bar").Enabled = True
    .CommandBars("Standard").Visible = True
    .CommandBars("Formatting").Visible = False
    .CommandBars("drawing").Visible = False
    .ScreenUpdating = False
    .EnableEvents = False
    End With
            For Each wsSheet In Worksheets
            wsSheet.Activate
            ActiveWindow.DisplayHeadings = False
            Next
    sSheetStart.Activate
    Application.ScreenUpdating = False
    Application.EnableEvents = True
    Sheets("MENU PRINCIPAL").Activate
End Sub

J’ai aussi écrit la procédure suivante pour rétablir les barres de commandes, onglets et entêtes à la fermeture du classeur :

Private Sub Workbook_BeforeClose(Cancel As Boolean)
With Application
.CommandBars(1).Enabled = True
.CommandBars(1).Visible = True
.DisplayFullScreen = False
.DisplayStatusBar = True
.DisplayFormulaBar = True
End With
With ActiveWindow
.DisplayHeadings = True
.DisplayWorkbookTabs = True
End With
End Sub

Lorsque je veux fermer mon classeur en utilisant la commande Excel, toutes les barres de commandes, onglets, etc., s’affichent avant même que j’aie répondu à la question : « Voulez-vous enregistrer les modifications apportées à (nom du classeur.xls)? Et si je clique sur « ANNULER », tout reste affiché

Comment faire pour que si je clique « ANNULER », les éléments que j’avais masqués à l’ouverture retournent dans cet état?

Merci

Bernard

Bonjour

Pas sur que c'est la meilleure méthode

A tester avec précaution (Tu risques si il y a erreur de ne plus avoir de menus)

Option Explicit

Private Sub Workbook_BeforeClose(Cancel As Boolean)
Dim Rep As Integer

  Rep = MsgBox("Voulez vous enregistrer votre classeur", vbYesNoCancel)
  If Rep = vbCancel Then
    Cancel = True
    Exit Sub
  End If
  '
  ' Ton code
  '
  If Rep = vbNo Then
    Application.DisplayAlerts = False
  Else
    ThisWorkbook.Save
  End If
  Application.Quit
End Sub
Rechercher des sujets similaires à "masquer afficher barres onglets entetes"