Comment masquer les barres d'outils d'un fichier excel lors de son ouverture en VBA et limiter ainsi l'accès à certaines fonctions sans impacter l'ouverture d'autres fichiers excel.
Franck
Comment masquer les barres d'outils d'un fichier excel lors de son ouverture en VBA et limiter ainsi l'accès à certaines fonctions sans impacter l'ouverture d'autres fichiers excel.
Franck
Le mieux serait d'enregistrer la macro en le faisant.
Masque la barre d'outils "Commandes"
Code : Sélectionner tout - Visualiser dans une fenêtre à part Application.CommandBars("Control Toolbox").Visible = False
Pour toutes les masquer, tu as
Pour tester le nom de celle/celles que tu veux masquer, j'ai laissé l'exemple
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5 For Each LaBarre In Application.CommandBars 'If LaBarre.Name = "Control Toolbox" Then LaBarre.Visible = False 'End If Next
A+
Bonsoir,
Si tu veux que se soit à l'ouverture du classeur.
Surtout ne pas oublier de rétablir en quittant le classeur
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6 Private sub WorkBook_Open() CommandBars(1).Enabled = False CommandBars(3).Enabled = False CommandBars(4).Enabled = False End Sub
jpleroisse
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6 Private Sub WorkBook_BeforeClose(Cancel As Boolean) CommandBars(1).Enabled = True CommandBars(3).Enabled = True CommandBars(4).Enabled = True End Sub
Si tu masques les barres à l'ouverture du classeur, et que tu les raffiches à l'ouverture, alors, si tu as d'autres classeurs d'ouvert avec la même instance d'excel, eux aussi auront les barres masquées.
Code : Sélectionner tout - Visualiser dans une fenêtre à part sans impacter l'ouverture d'autres fichiers excel
Si tu ne souhaites pas masquer pour les classeurs autre que tout appli, tu peut faire un masquage et un affichage sur les évènement workbookActivate et workbookDesactivate.
Ainisi, les changement auront lieu que pour ton classeur
Re,
Erreur dans mon code,
Il faut ajouter Application. devant les commandBars.
(Application.CommandBars(1).Enabled = False)
Tan, mon code rétablit les Commandbars au momment de quitter le classeur, celà n'a donc aucune incidence sur les autres classeurs.
jpleroisse
Sauf, si tu ouvres plusieurs classeurs en même temps (c'est juste pour ça ma note).celà n'a donc aucune incidence sur les autres classeurs.
En fait, si tu ouvres un classeur quelconque, puis que tu ouvres le classeur qui masque les barres, alors, tu as dans ton application excel 2 classeurs d'ouverts.
Les barres étant dépendantes de l'application et non du classeur, la barre est masquée pour ton classeur mais aussi pour le "quelconque".
Les barres du fichier "quelconque" vont réapparaitre si tu fermes l'autre classeur, mais si tu passes de l'un a l'autre sans fermer, là, il n'y a jamais la barre.
Parfois, ça peut être désagréable de perdre des fonctions sur les autres classeurs où la limitation est inutile.
C'est pourquoi j'ai parlé des évènements activate et desactivate qui en plus de ce déclencher à l'ouverture et à la fermeture, se déclenchent quand tu passes d'un classeur à l'autre.
Cela dit, j'ai parfois eu des problèmes avec le activate (quand le code était important), mais en règle générale ça marche bien pour de petits codes, et je l'utilise quand je crée des menus propres à un classeur (car dans ce cas pouvoir utiliser les nouveaux menus d'un autre classeur, peut carrément être source d'erreur).
Tan
Re,
OK Tan, je n'avais pas envisagé l'ouverture de 2 classeurs en même temps.
mais dans ce cas tu as raison.
jpleroisse
Partager