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

Récupérer le nom d'un SOUS-MENU ACCESS VBA

1 réponse
Avatar
SABBE
Bonjour,

J'ai visit=E9 le forum pour essayer de trouver une r=E9ponse =E0 mon
probl=E8me mais en vain, merci =E0 toute personne pouvant m'aider,

J'ai un menu personnalis=E9 sous access que j'ouvre automatiquement.
Menu1 Menu2 Quiter

Menu2,
Etat1
Etat2
Etat3

Je voudrais ex=E9cut=E9 une fonction qui est la m=EAme pour les 3, juste
le titre de l'=E9tat qui change.
Je peux acc=E9der au sous-menu Etat1, 2 ou 3
Captureligne=3DCommandBars("monmenu").Controls(2).Controls(1).Caption

Mais je ne sais pas s'il y a une fonction qui me permet de savoir
quand je clique sur etat1 que c'est le sous-menu etat1 et ainsi pour
tous les sous-menu sans sp=E9cifier la position de la ligne du sous-menu
comme 1 pour mon cas pour Etat1.

Merci.

1 réponse

Avatar
joyeux atchoum
bonjour

Si j'ai bien suivi ta question, tu as dans un menu 3 actions qui
doivent ouvrir 3 états distincts à l'aide d'une meme méthode.
Si c'est ça tu dois utiliser la propriété parameter.

Dans ta méthode ouvirEtat()

Set CBBouton = Application.CommandBars.ActionControl
Select Case CBBouton.Parameter
Case "Etat1"
'action associé à état 1
Case "Etat2"
'action associé à état 2
Case Else
'Autre cas
End Select

Et si tu generes ta barre d'outil en VBA , tu précises Parameter comme
ceci par exemple

Dim BarreMenu As CommandBar
Dim cbcParent As CommandBarControl
Dim cbcControle As CommandBarControl

set BarreMenu = CommandBars.Add(MenuBar:=bolMenuBarre,
position:=mbpPosition, Temporary:=bolTemporaire)

Set cbcParent = Set cbcControle =
cbcParent.Controls.Add(Type:=msoControlPopup)

Set cbcControle = cbcParent.Controls.Add(Type:=msoControlButton,
Parameter:=strParametre)

With cbcControle
.Caption = strTitre
.OnAction = "OuvrirEtat"
End With

ja
qui espére avoir donné un début de reponse