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?
Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
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
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?
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?