barre d'outils & déplacement de boutons

R

rem's

Guest
barre d'outils & déplacement de boutons

Salut.

Voici mon problème: à l'ouverture d'un fichier, une barre d'outils se crée avec X boutons et des menus (controles) du type msoControlPopup.
Quand je veux insérer un bouton dans ces menus, je fais un truk du genre:

Application.CommandBars("PIC").Controls(5).Move Bar:=Application.CommandBars("Menu contextuel personnalisé 14")

Le problème est que je n'arrive pas à appeler mon "menu" autrement que "menu contextuel X". De plus, le numéro du "menu contextuel" varie de temps en temps...
Comment être sûr de placer mon bouton toujours dans le bon menu?

Merci d'avance
 
Y

yeahou

Guest
Re: barre d'outils & déplacement de boutons

Bonjour rem's

le plus simple est certainement de référencer ta barre dans une variable publique
le code suivant te montre comment faire et montre qu'un objet créé ainsi est accessible facilement même dans une autre procédure

Cordialement, A+

Public Barre_Mem As CommandBar

Sub essai()
Set Barre_Mem = Application.CommandBars.Add
End Sub

Sub essai2()
Barre_Mem.Controls.Add Type:=msoControlButton, ID:=23, Before:=1
MsgBox "Bouton ajouté sur la barre " & Barre_Mem.Name
End Sub
 
R

rem's

Guest
Re: barre d'outils & déplacement de boutons

En fait je n'ai pas du très bien poser mon problème.

Il ne s'agit pas d'insérer un bouton dans la barre que je veux.

Il s'agit d'insérer un bouton dans un menu (msoControlPopup, que je ne sais pas nommer) qui lui même est dans une barre que j'ai créé.

Je voudrais donc trouver mon menu autrement que ci-dessous ("Menu contextuel personnalisé 14"), mais les msoControlPopup n'ont pas de propriété name......

Application.CommandBars("PIC").Controls(5).Move Bar:=Application.CommandBars("Menu contextuel personnalisé 14")

Merci
 
Y

yeahou

Guest
Re: barre d'outils & déplacement de boutons

Re Bonjour

je comprends pas trop ce que tu veux faire
voici un exemple fonctionnel sur la barre de menu, j'espère que cela te guidera.

A+

Public Barre_Mem1 As Variant, Barre_Mem2 As Variant
Sub essai()
On Error Resume Next
With Application.CommandBars("Worksheet Menu Bar")
If IsError(IsObject(.Controls("coucou"))) Then Set Barre_Mem1 = .Controls.Add(Type:=msoControlPopup, before:=1): Barre_Mem1.Caption = "coucou"
End With
With Application.CommandBars("Worksheet Menu Bar").Controls("coucou")
If IsError(IsObject(.Controls("msg"))) Then Set Barre_Mem2 = .Controls.Add(Type:=msoControlButton, ID:=752, before:=1): Barre_Mem2.Caption = "msg": Barre_Mem2.OnAction = "msg_uti"
End With
On Error GoTo 0
End Sub
Sub msg_uti()
MsgBox "c'est bon"
End Sub
 
B

besbes

Guest
Re: barre d'outils & déplacement de boutons

C'est de mon côté exactement ce que je cherchais néanmoins je souhaite que ce nouveau menu ne soit présent qu'à l'ouverture du fichier qu'il concerne et non à l'ouverture d'excel.

Comment puis-je faire désormais ?

Merci pour votre aide et surtout merci pour le partage de tant de savoir-faire.

Bonne journée
 

Discussions similaires

Statistiques des forums

Discussions
312 676
Messages
2 090 803
Membres
104 670
dernier inscrit
Djnic30