Création d’un menu pop-up
Un menu pop-up est un menu qui apparaît
dans une fenêtre qui s’affiche à l’écran. Il est assez facile de créer un menu
pop-up avec, le cas échéant des sous-menus.
Dans l’exemple ci-dessous, on
lance le test de ce menu pop-up en cliquant dans le bouton macro éponyme placé
dans le coin supérieur gauche de la feuille. On pourrait bien entendu le lancer
aussi via un raccourci comme par exemple [Ctrl]-p…
Voici le code qui permet de
définir ce menu pop-up et de gérer ses appels de macros liés au choix de
l’utilisateur.
Option Explicit
Public Const NomMenu As
String = "MonPopUp"
Sub DeletePopUpMenu()
' Efface le pop-up s'il est encore présent
On Error Resume Next
Application.CommandBars(NomMenu).Delete
On Error GoTo 0
End Sub
Sub CreateDisplayPopUpMenu()
' Efface tout menu pop-up
Call DeletePopUpMenu
' Crée le menu popup
Call Custom_PopUpMenu
' Affiche le menu popup
On Error Resume Next
Application.CommandBars(NomMenu).ShowPopup
On Error GoTo 0
End Sub
Sub Custom_PopUpMenu()
Dim MenuItem As CommandBarPopup
' Ajoute le menu pop-up
With Application.CommandBars.Add(Name:=NomMenu,
Position:=msoBarPopup, _
MenuBar:=False,
Temporary:=True)
' Ajoute les deux premiers boutons
With
.Controls.Add(Type:=msoControlButton)
.Caption = "Bouton
1"
.FaceId = 71
.OnAction =
"Macro(1)"
End With
With
.Controls.Add(Type:=msoControlButton)
.Caption = "Bouton
2"
.FaceId = 72
.OnAction =
"Macro(2)"
End With
' Ajout du sous-menu
Set MenuItem =
.Controls.Add(Type:=msoControlPopup)
With MenuItem
.Caption = "Mon sous-menu à
moi"
With
.Controls.Add(Type:=msoControlButton)
.Caption = "Bouton a dans le sous-menu"
.FaceId = 71
.OnAction =
"Macro(3)"
End With
With
.Controls.Add(Type:=msoControlButton)
.Caption = "Bouton b dans le sous-menu"
.FaceId = 72
.OnAction =
"Macro(4)"
End With
End With
' Ajout du dernier bouton
With
.Controls.Add(Type:=msoControlButton)
.Caption = "Bouton
3"
.FaceId = 73
.OnAction =
"Macro(5)"
End With
End With
End Sub
Sub Macro(i As Integer)
Dim Mess(5) As String
Mess(1) = "Bouton 1":
Mess(2) = "Bouton 2": Mess(3) = "Bouton 2a"
Mess(4) = "Bouton 2b":
Mess(5) = "Bouton 3"
MsgBox "Votre sélection : " & Mess(i)
End Sub
Remarque – Le seul petit
problème que j’ai encore est que le dialogue affiché par la macro apparaît deux
fois de suite… Nous étudierons ce problème dans le prochain article.
Les commandes “.FaceId = …”
ne servent qu’à afficher les numéros à gauche des noms des commandes. Vous
pouvez les éliminer sans problème.
L'auteur de la version originale de cette macro, que j'ai ensuite francisée et simplifiée, est Ron de Bruin, un collègue MVP Excel.
L'auteur de la version originale de cette macro, que j'ai ensuite francisée et simplifiée, est Ron de Bruin, un collègue MVP Excel.
1 Commentaire(s):
Bonjour,
L'auteur de la version originale de cette macro de pop-up est peut être Ron de Bruin.
http://www.rondebruin.nl/popup.htm
Cordialement
By
jpr73, sur 8:46 PM
Enregistrer un commentaire
<< Accueil