Appliquer une macro sur un cbpopup

macadamx

XLDnaute Junior
Bonjour à tous !

J'ai récupéré une macro permettant de créer des menus déroulant style windows.

Hormis le fait que le code subit une légère lenteur au démarrage, je n'arrive pas à appliquer une macro au dernier niveau d'imbrication.

Call AddItemInMenu(CbPopup(2), "SEXE", 305, noMenu & "02""'")

j'ai cru comprendre que c'était à la suite de nomenu qu'il fallait appeller une macro mais je ne trouve pas comment faire...

Cliquez sur le carré blanc pour lancer la macro :)


Quelqu'un peu m'aider s'il vous plaît?

Ci-joint le fichier Test
 

Pièces jointes

  • TEST.xls
    88 KB · Affichages: 39
  • TEST.xls
    88 KB · Affichages: 54
  • TEST.xls
    88 KB · Affichages: 44
Dernière édition:

macadamx

XLDnaute Junior
Re : Appliquer une macro sur un cbpopup

Car en fait, le call se fait sur cette macro :

AddItemInMenu(CbControl As Object, TitleCaption As String, NoFaceId As Integer, WhenAction As String, Optional NewGroup As Boolean = False)

et le noMenu est comme ceci...
noMenu = "'MacroName""" & idx

Any Idea ?
 

macadamx

XLDnaute Junior
Re : Appliquer une macro sur un cbpopup

J'ai éssayé d'utiliser ce code :
Sub barre_menus_perso()
'déclaration des variables
Dim Cbar As CommandBar, Cbut As CommandBarButton
Dim Ctxt As CommandBarComboBox, Cpop1 As CommandBarPopup, Cpop2 As CommandBarPopup
Dim x As Byte

'création de la barre de menus
Set Cbar = CommandBars.Add(Name:="MaBarre", Position:=msoBarTop, Temporary:=True)
Cbar.Protection = msoBarNoMove + msoBarNoCustomize '<-- protection de la barre de menus'insertion sur la barre de menus d'un bouton de commande
Set Cbut = Cbar.Controls.Add(msoControlButton)
With Cbut
.FaceId = 358 '<-- icône
.OnAction = "Macro1" '<-- procédure à exécuter
.TooltipText = "Suppression barre de menus" '<-- info-bulle
.Tag = "cbut1" '<-- étiquette
End With

'insertion sur la barre de menus d'une zone de texte
Set Ctxt = Cbar.Controls.Add(msoControlEdit)
With Ctxt
.Style = msoComboLabel '<-- zone de texte avec label
.Caption = "Date :" '<-- texte du label
.TooltipText = "Veuillez introduire une date" '<-- info-bulle
.OnAction = "Macro2" '<-- procédure à exécuter
.BeginGroup = True '<-- barre de séparation
.Tag = "ctxt1" '<-- étiquette
End With

'insertion sur la barre de menus d'une zone de liste
Set Ctxt = Cbar.Controls.Add(msoControlDropdown)
With Ctxt
.Style = msoComboLabel '<-- zone de liste avec label
.Caption = "Liste :" '<-- texte du label
.TooltipText = "Faites votre choix" '<-- info-bulle
.OnAction = "Macro3" '<-- procédure à exécuter
.BeginGroup = True '<-- barre de séparation
.Tag = "clist1" '<-- étiquette
For x = 1 To 5
.AddItem ("Choix " & x) '<-- ajout de 5 Item
Next
End With

'insertion sur la barre de menus d'un sous-menu 1
Set Cpop1 = Cbar.Controls.Add(msoControlPopup)
With Cpop1
.Caption = "Sous-menu 1" '<-- label du sous-menu
.Tag = "sm1" '<-- étiquette
End With

'insertion dans le sous-menu 1 d'un premier bouton de commande
Set Cbut = Cpop1.Controls.Add(msoControlButton)
With Cbut
.Style = msoButtonCaption '<-- bouton avec texte uniquement
.Caption = "Bouton 1" '<-- label du bouton
.OnAction = "Macro4" '<-- procédure à exécuter
.Tag = "sm1cbut1" '<-- étiquette
End With

'insertion dans le sous-menu 1 d'un second bouton de commande
Set Cbut = Cpop1.Controls.Add(msoControlButton)
With Cbut
.Style = msoButtonCaption '<-- bouton avec texte uniquement
.Caption = "Bouton 2" '<-- label du bouton
.OnAction = "Macro4" '<-- procédure à exécuter
.Tag = "sm1cbut2" '<-- étiquette
End With

'insertion dans le sous-menu 1 d'un sous-menu 2
Set Cpop2 = Cpop1.Controls.Add(msoControlPopup)
With Cpop2
.Caption = "Sous-menu 2" '<-- label du sous-menu
.Tag = "sm2" '<-- étiquette
End With

'insertion dans le sous-menu 2 d'un bouton prédéfini ouvrant l'application Word
Set Cbut = Cpop2.Controls.Add(Type:=msoControlButton, ID:=42)
With Cbut
.Style = msoButtonIconAndCaption '<-- bouton avec icône + texte
.Caption = "Word" '<-- label du bouton
End With

'insertion dans le sous-menu 2 d'un bouton prédéfini ouvrant l'application Access
Set Cbut = Cpop2.Controls.Add(Type:=msoControlButton, ID:=264)
With Cbut
.Style = msoButtonIconAndCaption '<-- bouton avec icône + texte
.Caption = "Access" '<-- label du bouton
End With

'insertion dans le sous-menu 2 d'un bouton prédéfini ouvrant l'application PowerPoint
Set Cbut = Cpop2.Controls.Add(Type:=msoControlButton, ID:=267)
With Cbut
.Style = msoButtonIconAndCaption '<-- bouton avec icône + texte
.Caption = "PowerPoint" '<-- label du bouton
End With

Cbar.Visible = True '<-- affichage de la barre de menus

End Sub

Mais je n'arrive pas à l'intégrer dans mon UserForm....

L'autre étant trop compliqué à comprendre et à modifier pour l'attribution de macro aux différents niveaux hiérarchiques.

Personne ne s'y connait en commandbar ?...

Par avance, encore merci pour votre aide
 

Statistiques des forums

Discussions
312 492
Messages
2 088 912
Membres
103 983
dernier inscrit
AlbertCouillard