Macro enlevant les menus

  • Initiateur de la discussion Initiateur de la discussion Luc
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

L

Luc

Guest
Allo allo,

Une autre question... Grâce à ce site, grâce aux réponses je deviendrai bon avec VBA rapidement... Je me demande donc s'il est possible, à l'aide d'une macro, d'élliminer tout les menus lorsque le document en question est ouvert.

Merci beaucoup encore, Luc.
 
Bonjour

'enleve uniquement barres d'outils
Private Sub Workbook_Open()
Dim CmdB As CommandBar
For Each CmdB In Application.CommandBars
If Not (CmdB.Name = "Worksheet Menu Bar") Then CmdB.Enabled = False
Next CmdB
End Sub

'enleve barre de menus et barres d'outils
Private Sub Workbook_Open()
Dim CmdB As CommandBar
For Each CmdB In Application.CommandBars
CmdB.Enabled = False
Next CmdB
End Sub

'rétablit tout à la sortie, à ne pas oublier
Private Sub Workbook_BeforeClose(Cancel As Boolean)
Dim CmdB As CommandBar
For Each CmdB In Application.CommandBars
CmdB.Enabled = True
Next CmdB
End Sub

A+
 
si tu n'es pas bon (voire très bon) avec VBA, mon conseil, c'est SURTOUT de ne pas toucher aux barres de menus.
Sinon c'est la pagaille assurée, des utilisateurs qui vont te poursuivre à coup de fourches et des ennuis à la pelle.
 
Bonjour Yeahou, Luc et Ti

Merci d'abord à Yeahou pour sa formule, je viens de monter une nouvelle marche dans l'ascension du VBA
J'ai même ajouté (grace à l'entregistreur):

Application.DisplayFormulaBar = False
Application.DisplayStatusBar = False
With ActiveWindow
.DisplayGridlines = False
.DisplayHeadings = False
End With
avec la même chose à la fin (False devient True) pour BeforeClose pour faire disparaitre temporairement la Barre d'état, la barre de formule et aussi pourquoi pas le quadrillage et les en-têtes.
Youpi ça marche.
Bon maintenant plus sérieux :
Ti peut-il m'expliquer très rapidement le pourquoi de sa mise en garde aussi forte ? Y a-t-il un problème caché sous ce que je ne comprends que comme une pb d'affichage ?
Evidemment son image de fourches levées comme au temps des révoltes paysannes n'a rien de rassurant ...
Merci d'avance
Bien cordialement
@+
GD
 
Salut

Pour Gérard:
l'avantage de la routine que j'ai donné est qu'elle ne modifie pas les paramètres utilisateur, on désactive sans modifier, il faut simplement s'assurer que la macro de fermeture est bien exécutée.
Par contre les instructions
Application.DisplayFormulaBar = False
Application.DisplayStatusBar = False
modifient ces paramètres, il faut donc en enregistrer l'état au lancement de ta macro pour le rétablir en sortie. Dans le cas contraire, les utilisateurs ne seront pas spécialement contents de devoir remettre aprés chaque utilisation de ton programme leur paramètrage par défaut pour excel. Il faut garder à l'esprit que les préférences de l'utilisateur et ses paramètrages d'excel ne doivent pas être modifiés sauf temporairement sinon cela générera du mécontentement.
En exemple, aprés une modification par un programme, un simple
Application.CommandBars("Worksheet Menu Bar").Reset
rétablira les menus par défaut de la barre de menus feuille de calcul. Ce n'est pas la meilleure solution car si l'utilisateur avait modifié ses menus pour son usage perso, ces modifs seront perdues.

A+
 
Pour compléter un peu ces (bonnes) explications, je dirai que lorsqu'on modifie les barres de menu, il faut un programme bétonné, sinon en cas de plantage, on risque de le quitter sans réinstaller les barres masquées.

D'autre part, dans la mesure où on est susceptible de modifier des personnalisations, il faudrait, avant de modifier l'état des différentes barres, sauvegarder l'état courant de celles-ci pour, à la fin, ne pas réafficher des barres qui ne l'étaient pas par défaut.
Personnellement, je sui un peu maniaque quant à l'apparence de mon environnement de travail, et je suis très vite irrité par les programmes qui veulent m'imposer un environnement qui n'est pas le mien, c'est pourquoi dans mes programmes, j'évite au maximum de toucher à quoi que ce soit.
 
Bonjour, j'aurai du lire vos message avant de me lancer dans l'avanture de faire disparaître les menus. En effet, je n'ai pas dû rentrer la commande qui permet d'annuler à la sortie, et du coup, je n'ai plus jamais de menus dans excel. Auriez-vous par hasard la solution pour palier à cela, car là je galère ...

Merci d'avance,

Ewan
 
Bonjour Ewan

si tu as utilisé CmdB.Enabled = False, lance ce programme

sub Retablit_Barres()
Dim CmdB As CommandBar
For Each CmdB In Application.CommandBars
CmdB.Enabled = True
Next CmdB
End Sub

si tu as modifié ou effacé les menus, cette commande brutale qui rétablit les menus par défaut

sub Retablit_menus_par_defaut
Application.CommandBars("Worksheet Menu Bar").Reset
end sub

sinon tu as toujours la ressource d'effacer le fichier tonnom.xlb qui se trouve à la racine du répertoire windows et qui contient tes personnalisations.

je te joins les deux premiers en pieces jointes (lancement auto). c'est pas facile d'accéder à vb sans menus et sans barres.

Cordialement, A+
 

Pièces jointes

- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD
Assurez vous de marquer un message comme solution pour une meilleure transparence.

Discussions similaires

Réponses
17
Affichages
596
Réponses
7
Affichages
346
Réponses
3
Affichages
318
Retour