info : masquer/afficher barres et onglets

  • Initiateur de la discussion C@thy
  • Date de début
C

C@thy

Guest
bonjour le forum

Cette question revient souvent : comment masquer/afficher les barres (de titre de défilement de menu etc...) et les onglets.

Attention! Après il faut tout remettre en ordre, sinon c'est le mégabôdel!

Application.CommandBars(1).Enabled = False ' (masquer la barre de menus)
Application.CommandBars(1).Enabled = True '(rétablir)

Plein écran :
Application.WindowState = xlMaximized
Application.DisplayFullScreen = True
Application.DisplayFullScreen = False '(rétablir)

Application.DisplayStatusBar = False' (Barre d'état)
Application.DisplayFormulaBar = False ' (Barre de formules)

Les barres d'outils standard format et dessin
Application.CommandBars("Standard").Visible = False
Application.CommandBars("Formatting").Visible = False
Application.CommandBars("Drawing").Visible = False

Masquage de toutes les barres d'outils présentes et copier leur nom dans feuil1
For Each Cbar In Application.CommandBars
If Cbar.Type = msoBarTypeNormal Then
If Cbar.Visible Then
TBarCompteur = TBarCompteur + 1
ThisWorkbook.Sheets("Feuil1").Cells(TBarCompteur, 1).Value = Cbar.Name
Cbar.Enabled = True
End If
End If
Next Cbar

'Barres de défilement vertical et horizontal (= ascenseurs)
With ActiveWindow
.DisplayHorizontalScrollBar = False
.DisplayVerticalScrollBar = True
End With
'Masquage des onglets
With ActiveWindow
.DisplayWorkbookTabs = False ' onglets
End With

En-têtes de lignes et de colonnes
With ActiveWindow
.DisplayHeadings = False
End With


Avanrt de fermer : tout rétablir

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
lign = 1
Tbar = ThisWorkbook.Sheets("Feuil1").Cells(lign, 1)
Do While Tbar <> ""
Application.CommandBars(Tbar).Enabled = True
Application.CommandBars(Tbar).Visible = True
lign = lign + 1
Tbar = ThisWorkbook.Sheets("Feuil1").Cells(lign, 1)
Loop
End Sub

BipBip.gif
 
C

Celeda

Guest
Bonsoir,

Mais c'est qu'elle se décarcasse Super C@thy
walkingfox_e0.gif




Si tu continues tu vas la faire pleurer la Celeda à 10000KMs. Merci ma belle.



Celeda

PS. : il faudrait que tu me penses à me faire une macro qui me ferait apparaître tous les matins le prince charmant mais vraiment charmant !!
 
E

eric

Guest
Merci pour ce code Cathy,

Petit problème rencontré : erreur d'éxécution pour la barre de menu principale.

Sachant que lorsque je fais l'opération par affichage->barre d'outil, dès lors que je quitte ce sous-menu, ma barre réapparait immédiatement. Y a t'il une manip spéciale à faire pour que cette barre reste masquée ?

Bonne journée
 
C

C@thy

Guest
Salut Eric,

je ne sais pas comment empêcher de réafficher les barres d'outils par le menu, (à moins de faire une macro complémentaire .xla), ça me semble sain de pouvoir les réafficher.

BipBip.gif
 
Y

Yann

Guest
Bonjour,
je suis en train de bricoler des barres de formules et le moteur de recherche m'a indiquer le message de C@thy ......GENIAL ...

Mon niveau en VBA est trés faible, j'ai réussi à faire disparaitre les barres de formule à l'ouverture du fichier

mais je ne voie pas comment tout rétablir à la fermeture

y a t il un "End Sub" aprés
"Application.commandBars("Standard").Visible=False
pour enchainer avec
Private Sub Workbook_beforeClose(...


dans ce cas la barre ne se remets pas sur d'autres fichier Excel ???

Comment faire pour remettre automatiquement les barres supprimer à la fermeture du fichier ???

Merci d'avance pour ces explications
 
C

Cathy

Guest
Salut Yann,

ben oui, c'est pas facile tout ça quand on débute en VBA.

1) tu fais ALT+F11
2) Dans la partie gauche il y a l'explorateur de projets (sinon faire Ctrl+R)
3) double-cliquer dans ThisWorkbook
4) dans la partie de droite cliquer sur la flèche à droite du mot (Général) en haut, et cliquer sur Workbook
5)dans la partie droite de cette partie droite (! tu me suis toujours?...) choisir BeforeClose (remonter l'ascenseur)
et là, entrer le code à exécuter avant de quitter (même procédure que pour Open)

J'ai eu le même problème que toi, des barres qui ne s'affichaient plus après avoir bidouillé plein de trucs, alors j'ai créé un fichier AffichBarres avec toutes les instructions dans le Workbook_Open, comme ça dès qu'on l'ouvre ça rétablit tout.

Bonne soirée

BipBip.gif
 
Y

Yann

Guest
Bonjour C@thy
Merci pour tous les renseignement sur l'affichage ou non des barres de menu
j'ai repris tes explications et tout fonctionne mai j'ai 2 petits problème :

- si l'utilisateur utilise une barre de menu personalisé (dont je connais pas le nom) celle-ci reste affiché

- inversement si il n'a pas une des barres de menu listée comme ("Enbled et visible (false)) la macro plente à l'ouverture



Comment écrire en VBA :

- rendre "enabled" et "(non) visible" toutes les barres de menus (même si l'on connait pas le nom
(en 2 ou 3 lignes au lieu de lister les 10 ou 15 barres à supprimer)

- puis affiché une barre donnée (ça je sais faire)


(a la sortie je remettrai toutes les barres (enabled) et afficherai seulement les principales



Merci d'avance
 
Y

Yann

Guest
.... désolé j'ai appuyé par erreur sur envoyé ..........



je précise que j'ai essayé de bidouiller avec reprenant ta formule pour imprimer les menu sur une feuille (sans vouloir les imprimer)

mais certaines restent visibles
et il n'y pas de restauration à la fin

Merci
Yann
 
C

Cathy

Guest
Salut Yann et tout le monde du forum,

bon, tu peux créer une feuille StockBars dans laquelle tu stocke le nom de toutes tes barres avant de les masquer, et ensuite tu vas récupérer les noms des barres dans cette feuille pour les réafficher

du style :

Stocker le nom et masquer :

ThisWorkbook.Sheets("StockBars").Select
ThisWorkbook.Sheets("StockBars").Range("A:A").ClearContents
TBarCompteur = 0
For Each Cbar In Application.CommandBars

If Cbar.Type = msoBarTypeNormal Then
If Cbar.Visible Then
'MsgBox cbar.Name
TBarCompteur = TBarCompteur + 1
ThisWorkbook.Sheets("StockBars").Cells(TBarCompteur, 1).Value = Cbar.Name
Cbar.Enabled = False
Cbar.Visible = False
End If
End If
Next Cbar

Réafficher :

Tbar = ThisWorkbook.Sheets("StockBars").Cells(lign, 1)
Do While Tbar <> ""
Application.CommandBars(Tbar).Enabled = True
Application.CommandBars(Tbar).Visible = True
lign = lign + 1
Tbar = ThisWorkbook.Sheets("StockBars").Cells(lign, 1)
Loop

BipBip.gif
 
Y

Yann

Guest
Bonjour à tous
merci C@thy pour ces explications ma barre de menu fonctionne presque

mon seul problème est que les nom des barres de menu se mettent systèmatiquement dans la feuille "Stockbars" (nomal) mais uniquement dans la cellule "A:1" en effacent le nom précédent
seul la dernière barre de menu est restaurée ???

comment faire pour qu'elles s'empilent en colone (ou lkigne ??)
du genre :

A:1 = Standard
A:2 = Formating
...
A:10 = barreperso


puis restauration

pour l'instant seul "barreperso" se remet automatiquement

Merci d'avance pour l'astuce
Yann
 

Discussions similaires

Réponses
12
Affichages
461
Réponses
2
Affichages
660
Réponses
3
Affichages
166
Réponses
2
Affichages
311

Statistiques des forums

Discussions
314 647
Messages
2 111 533
Membres
111 192
dernier inscrit
F.Venne