OVH Cloud OVH Cloud

Taille d'une barre d'outils

2 réponses
Avatar
Franck
Bonjour,

Il me manque 1 param=E8tre dans la cr=E9ation de mes barre=20
d'outils, leur taille

Si j'ai une barre d'outils qui s'appelle "ce nom est tr=E8s=20
long" et un menu qui s'appelle "menu" la barre d'outils=20
prend par d=E9faut la taille menu.

existe t-il un param=E8tre type width ou autre permettant de=20
d=E9finir la taille de la bo ?

Merci

FB

2 réponses

Avatar
Franck
C'est bon, en fait j'ai trouvé, il faut agir sur le menu
directement

bon allez, je mets un exemple pour ceux que ça intéresse

Sub bar ()
Dim bo as CommandBar
Dim menu
Dim b1,b2
Set bo = CommandBars.Add("MaBarre")
bo.Visible = True
Set menu=bo.Controls.Add(msoControlPopup)
With menu
.Caption = "MonMenu"
.Width = 75
End With
Set b1=menu.Controls.Add(msoControlButton)
With b1
.style=msoButtonIconAndCaption
.FaceIdH1
.Caption="Quel est ce symbole ?"
.OnAction="macro1"
End With
Set b2=menu.controls.add(msoControlButton)
With b2
.Style=msoButtonIconAndCaption
.FaceIdH3
.Caption="Quel est ce symbole ?"
.OnAction="macro2"
End With
End Sub

Sub macro1()
Msgbox "C'est un coeur !"
End Sub

Sub macro2()
Msgbox "C'est un pique !"
End Sub

Franck B.

-----Message d'origine-----
Bonjour,

Il me manque 1 paramètre dans la création de mes barre
d'outils, leur taille

Si j'ai une barre d'outils qui s'appelle "ce nom est très
long" et un menu qui s'appelle "menu" la barre d'outils
prend par défaut la taille menu.

existe t-il un paramètre type width ou autre permettant
de

définir la taille de la bo ?

Merci

FB
.



Avatar
Frédéric Sigonneau
Bonjour,

Pour garder la maîtrise de la largeur de la barre d'outils malgré ce
comportement par défaut d'Excel (modifier la propriété Width de la bo n'ayant
aucun effet) je n'ai trouvé qu'un contournement : ajouter un bouton "bidon" et
désactivé auquel tu donnes une largeur suffisante pour que le titre de ta barre
d'outils soit entièrement lisible. Quand tu n'as qu'un ou deux boutons dans ta
bo, c'est une solution acceptable, AMA.
Exemple de code :

'===================Úns un module standard
Sub TestBoAvecNomLong()
Dim maBarre As CommandBar
Dim Menu1, ssMenu1, Btn1

Set maBarre = _
Application.CommandBars.Add(Name:="Barre avec un long nom", _
Position:=msoBarFloating, temporary:=True)

Set Menu1 = maBarre.Controls.Add(msoControlPopup, , , , True)
Menu1.Caption = "Menu&1"

Set ssMenu1 = Menu1.Controls.Add(msoControlButton, , , , True)
With ssMenu1
.Caption = "SousMenu1"
.OnAction = "Opt1"
End With

'bouton bidon
Set Btn1 = maBarre.Controls.Add(msoControlButton, , , , True)
With Btn1
.Enabled = False
.Width = 150
End With

maBarre.Visible = True
End Sub

Sub Opt1()
MsgBox "Sous menu 1 cliqué"
End Sub

Sub delMaBarre()
Application.CommandBars("Barre avec un long nom").Delete
End Sub
'==========================================
FS
--
Frédéric Sigonneau [MVP Excel - né un sans-culottide]
Gestions de temps, VBA pour Excel :
http://perso.wanadoo.fr/frederic.sigonneau
Si votre question sur Excel est urgente, évitez ma bal !


Bonjour,

Il me manque 1 paramètre dans la création de mes barre
d'outils, leur taille

Si j'ai une barre d'outils qui s'appelle "ce nom est très
long" et un menu qui s'appelle "menu" la barre d'outils
prend par défaut la taille menu.

existe t-il un paramètre type width ou autre permettant de
définir la taille de la bo ?

Merci

FB