OVH Cloud OVH Cloud

[VBA] changement faceid d'un bouton

22 réponses
Avatar
Microsoft VBA Excel
Bonjour,

je souhaite modifier le faceid d'un bouton d'une barre d'outils fraîchement
créée.

Qu'est-ce qui ne va pas dans mon code ?
CommandBars("nombarreoutils").nombouton.FaceId = 343

Merci d'avance !

2 réponses

1 2 3
Avatar
Modeste
Bonsour® Microsoft VBA Excel

Difficile de donner une solution clé en mains selon un cahier des charges
imprécis et évolutif ...
je t'ai répondu que l'image était affecté lors de la création...
que pour la changer il fallait supprimmer puis recrer le bouton
la propriete FaceId fait partie de la méthode Add

je t'ai indiqué des exemples sur le site de Frédéric, tu devrais y trouver ton
inspiration

si l'on se lance dans des usines à gaz, il faut aussi savoir faire preuve
d'adaptation ;o)))
et ici il y a quelques félés...
bienvenue au club ;o)))
'---------------------------
voir ci-dessous adaptations qui affectent une image personnalisée lors de la
creation :
'--------------------------
Set vmabarre = CommandBars.Add(Name:="toto", Position:=msoBarTop,
temporary:úlse)
vmabarre.Visible = True

'puis on y insère les boutons :
'bouton 1
Set newbouton1 > CommandBars("toto").Controls.Add(Type:=msoControlButton)
With newbouton1
.Caption = "macro 1"
.FaceId = 342 'image
.BeginGroup = True
.OnAction = "'monfichier.xls'!macro1.macro1"
.Style = msoButtonIconAndCaptionBelow
.TooltipText = "import"
End With

'pour avoir un traite de séparation entre les boutons 1 et 2
BeginGroup = True

'bouton 2
'------------------------------

' (Noms et chemins à adapter d'un classeur personnel icones contenant des
images
' 1-ouvrir le classeur "spécial icones"
Set wbk = Workbooks.Open("E:Cheni2001Boeticonesexcel.xls")
' 2-copier l'icone voulue
wbk.Worksheets("Feuil1").Shapes("Image 97").Copy
' 3-refermer le classeur "spécial icones"
wbk.Close False
'-----------------------------

Set newbouton2 > CommandBars("toto").Controls.Add(Type:=msoControlButton)
With newbouton2
.Caption = "macro 2"
'-----------------------------

' ----------------coller l'icone personnalisée
.PasteFace ' -------- à mettre en commentaire .FaceId = 342
'image
'----------------------------------- >
.BeginGroup = True

.OnAction = "'aa outils de ventilation.xls'!macro2.macro2"
.Style = msoButtonIconAndCaptionBelow
.TooltipText = "calculs"
End With



Pourquoi à la fin ????
A la fin de mon module 2, après que plein de choses se soient passées dans
le fichier Excel, (il est toujorus ouvert, il n'a pas été fermé et la barre
d'outils est toujours affichée), je souhaite modifier le FaeceID du bouton
2.


--
--
@+
;o)))

Avatar
Microsoft VBA Excel
Merci Modeste.

Donc, si j'ai bien compris, on ne peut pas modifier un faceID, on ne peut
simplement que supprimer le bouton et le recréer avec la nouvelle image ?

Ou est-ce que je dois détruire la barre entière et la recréer entèrement ?

"Modeste" a écrit dans le message de news:

Bonsour® Microsoft VBA Excel

Difficile de donner une solution clé en mains selon un cahier des charges
imprécis et évolutif ...
je t'ai répondu que l'image était affecté lors de la création...
que pour la changer il fallait supprimmer puis recrer le bouton
la propriete FaceId fait partie de la méthode Add

je t'ai indiqué des exemples sur le site de Frédéric, tu devrais y trouver
ton inspiration

si l'on se lance dans des usines à gaz, il faut aussi savoir faire preuve
d'adaptation ;o)))
et ici il y a quelques félés...
bienvenue au club ;o)))
'---------------------------
voir ci-dessous adaptations qui affectent une image personnalisée lors de
la creation :
'--------------------------
Set vmabarre = CommandBars.Add(Name:="toto", Position:=msoBarTop,
temporary:úlse)
vmabarre.Visible = True

'puis on y insère les boutons :
'bouton 1
Set newbouton1 >> CommandBars("toto").Controls.Add(Type:=msoControlButton)
With newbouton1
.Caption = "macro 1"
.FaceId = 342 'image
.BeginGroup = True
.OnAction = "'monfichier.xls'!macro1.macro1"
.Style = msoButtonIconAndCaptionBelow
.TooltipText = "import"
End With

'pour avoir un traite de séparation entre les boutons 1 et 2
BeginGroup = True

'bouton 2
'------------------------------

' (Noms et chemins à adapter d'un classeur personnel icones contenant des
images
' 1-ouvrir le classeur "spécial icones"
Set wbk = Workbooks.Open("E:Cheni2001Boeticonesexcel.xls")
' 2-copier l'icone voulue
wbk.Worksheets("Feuil1").Shapes("Image 97").Copy
' 3-refermer le classeur "spécial icones"
wbk.Close False
'-----------------------------

Set newbouton2 >> CommandBars("toto").Controls.Add(Type:=msoControlButton)
With newbouton2
.Caption = "macro 2"
'-----------------------------

' ----------------coller l'icone personnalisée
.PasteFace ' -------- à mettre en commentaire .FaceId = 342
'image
'----------------------------------- >
.BeginGroup = True

.OnAction = "'aa outils de ventilation.xls'!macro2.macro2"
.Style = msoButtonIconAndCaptionBelow
.TooltipText = "calculs"
End With



Pourquoi à la fin ????
A la fin de mon module 2, après que plein de choses se soient passées
dans
le fichier Excel, (il est toujorus ouvert, il n'a pas été fermé et la
barre
d'outils est toujours affichée), je souhaite modifier le FaeceID du
bouton
2.


--
--
@+
;o)))





1 2 3