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 SubJ’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 SubLorsque 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