Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

Macro cacher les barres

1 réponse
Avatar
YANN24
Bonjour, j'ai récupéré sur le site de frédéric sigonneau la macro pour cacher
toutes les barres, sauf celle de fichiers, et un emacro pour créer son propre
Menu.

Je voudrais en fait, créer un menu (par le biais de la macro ci après), qui
me permette de seulement quitter et imprimer.

Sub testMenu()
'papou, mpfe
Dim monmenu As CommandBarControl, sousmenu1 As CommandBarControl
Dim sousmenu2 As CommandBarControl, sousmenu2_option1, sousmenu2_option2
Set monmenu = _
Application.CommandBars(1).Controls.Add(msoControlPopup, , , , True)
With monmenu
.Caption = "&Qualité"
End With
Set sousmenu1 = monmenu.Controls.Add(msoControlButton, , , , True)
With sousmenu1
.Caption = "&Mise à jour du document"
.OnAction = "Planning"
End With
Set sousmenu2 = monmenu.Controls.Add(msoControlPopup, , , , True)
With sousmenu2
.Caption = "Audit"
Set sousmenu2_option1 = sousmenu2.Controls.Add(msoControlButton, , , ,
True)
With sousmenu2_option1
.Caption = "&Individuel"
.OnAction = "Individuel"
End With
Set sousmenu2_option2 = sousmenu2.Controls.Add(msoControlButton, , , ,
True)
With sousmenu2_option2
.Caption = "&Tous"
.OnAction = "Tous"
End With
End With
End Sub

Sub delTest()
Application.CommandBars(1).Controls("&Qualité").Delete
End Sub


De plus, je voudrais que l'utilisateur n'ai accès qu'au menu que j'ai
inventé. Comment faire? Et puis-je mettre ceci dans mon auto_open?

Merci d'avance à tous.
YANN

1 réponse

Avatar
anomymousA
bonjour YANN,

As-tu bien compris la logique de conception des barres de commandes et des
controles associés ?
Avant de te lancer, je te conseille de faire quelques essais avec la Sub
ci-dessous, car elle a l'avantage de ne rien détruire (en fait on ne détruit
jamais rien sauf gros problème mais on masque ou on invalide ce qui est tout
de même très différent) mais selulement d'ajouter.
Pour ta question, as-tu bien regardé comment tu vas remettre les barres de
menus que l'utilisateur avait avant d'exécuter ta macro ?. Cette phase est
evidemment essentielle sous peine de ne plus jamais voir personne utiliser
ton fichier.

Enfin , pour cacher la barre des menus principale ( worksheet Menu Bar ou
Commandbars(1) à, il faut utiliser .Enableúlse au lieu de .Visible úlse.
De plus, tu ne peux pas utiliser en tant que telle la sub ci-dessous pour à
la fois masquer la commanbars(1) et d'autre part t'en servir pour rajouter un
controle dessus (c'est pourtant ce que fait dans cette sub
Application.CommandBars(1).Controls.Add(msoControlPopup, , , , True) ).

Pour créer une barre de commandes, il te faut écrire p.e
Dim MyBar As CommandBar

Set MyBar = Application.CommandBars.Add(Name:="MaBarre",
Position:=msoBarFloating, Temporary:=True)

Etudies dans l'aide ce que veulent dire les paramètres qui sont attachées à
la méthode Add de l'objet commandbars. Ca sera très instructif, voire
essentiel selon ce que tu veux faire.

Une fois ta barre créée, tu peut la nourrir de controles qui eux-mêmes
peuvent avoir des controles en utilisant la syntaxe de la procédure
ci-dessous. A titre d'exemple, et pour paraphraser celle-ci, on devrait alors
écrire,

Set monmenu
=Application.CommandBars("MaBarre").Controls.Add(msoControlPopup, , , , True)
ou
Set monmenu =MyBar.Controls.Add(msoControlPopup, , , , True)

Ensuite tu peux intégralement utiliser les instructions de la sub ci-dessous.

la sub de destruction de la barre crée devra s'écrire
Sub delTest()
Application.CommandBars("MaBarre").Delete

End Sub



Bonjour, j'ai récupéré sur le site de frédéric sigonneau la macro pour cacher
toutes les barres, sauf celle de fichiers, et un emacro pour créer son propre
Menu.

Je voudrais en fait, créer un menu (par le biais de la macro ci après), qui
me permette de seulement quitter et imprimer.

Sub testMenu()
'papou, mpfe
Dim monmenu As CommandBarControl, sousmenu1 As CommandBarControl
Dim sousmenu2 As CommandBarControl, sousmenu2_option1, sousmenu2_option2
Set monmenu = _
Application.CommandBars(1).Controls.Add(msoControlPopup, , , , True)
With monmenu
.Caption = "&Qualité"
End With
Set sousmenu1 = monmenu.Controls.Add(msoControlButton, , , , True)
With sousmenu1
.Caption = "&Mise à jour du document"
.OnAction = "Planning"
End With
Set sousmenu2 = monmenu.Controls.Add(msoControlPopup, , , , True)
With sousmenu2
.Caption = "Audit"
Set sousmenu2_option1 = sousmenu2.Controls.Add(msoControlButton, , , ,
True)
With sousmenu2_option1
.Caption = "&Individuel"
.OnAction = "Individuel"
End With
Set sousmenu2_option2 = sousmenu2.Controls.Add(msoControlButton, , , ,
True)
With sousmenu2_option2
.Caption = "&Tous"
.OnAction = "Tous"
End With
End With
End Sub

Sub delTest()
Application.CommandBars(1).Controls("&Qualité").Delete
End Sub


De plus, je voudrais que l'utilisateur n'ai accès qu'au menu que j'ai
inventé. Comment faire? Et puis-je mettre ceci dans mon auto_open?

Merci d'avance à tous.
YANN