Icones dans "commandbarcontrol"

Torème

XLDnaute Nouveau
Bonjour,
Après recherche sur le net, il semble impossible de mettre le fond des boutons en couleur dans une barre d'outils (commandbar) (Excel 2003).
Par contre, on peut trouver des icônes en couleur (je cherche des petits carrés en couleur) suivant le numéro du "faceid". Mais, a priori, il y a en très peu.
Ma question : comment en avoir d'autres ?
Les boutons de la barre d'outils servent à remplir automatiquement des cellules suivant le type d'absences (voir code ci-dessous)

Sub auto_open()
On Error Resume Next
Dim barre As CommandBar
Dim bouton As CommandBarControl
Dim bouton4 As CommandBarControl

Set barre = Application.CommandBars.Add(Name:="Planning des absences")

Set bouton = CommandBars("Planning des absences").Controls.Add(Type:=msoControlButton)
With bouton
.Style = msoButtonIconAndCaption
.TooltipText = "Congés"
.Width = 123
.BeginGroup = True
.FaceId = 6859
.OnAction = "Congés"
.Caption = "Congés"
End With

Set bouton = CommandBars("Planning des absences").Controls.Add(Type:=msoControlButton)
With bouton
.Style = msoButtonIconAndCaption
.TooltipText = "Congés RTT"
.Width = 123
.BeginGroup = True
.FaceId = 6851
.OnAction = "Congés_rtt"
.Caption = "RTT"
End With

Set bouton = CommandBars("Planning des absences").Controls.Add(Type:=msoControlButton)
With bouton
.Style = msoButtonIconAndCaption
.TooltipText = "Maladie"
.Width = 123
.BeginGroup = True
.FaceId = 6852
.OnAction = "Maladie"
.Caption = "Maladie"
End With

With CommandBars("Planning des absences")
.Position = msoBarFloating
.Visible = True
.Width = CommandBars("Planning des absences").Width / 3
End With

End Sub
Sub auto_close()
On Error Resume Next
CommandBars("Planning des absences").Delete
End Sub

Merci :)
 

tototiti2008

XLDnaute Barbatruc
Re : Icones dans "commandbarcontrol"

Bonjour Torème,

Tu peux dessiner tes boutons en faisant :

Menu Outils-Personnaliser
Clic droit sur le bouton - Editeur de boutons

Bon dessin ;)

à moins que les choix proposés dans "Modifier l'image du bouton" te suffisent.
 

RENAUDER

Nous a quitté
Repose en paix
Re : Icones dans "commandbarcontrol"

Bonjour,

Voici un petit exemple d'une barre perso et flottante avec des icônes personnalisées et posées sur une feuille de calculs.
shtCustomIcons est le nom de la feuille où sont les icônes.
J'avoue que le plus dur est de faire de jolies icônes.
Le code
Code:
 .FaceId = 1017

est remplacé par

Code:
   shtCustomIcons.Shapes("Icon1").Copy
   .PasteFace
 

Pièces jointes

  • Exemple de création d'une barre de menus avec boutons personnalisés.xls
    32.5 KB · Affichages: 205

Torème

XLDnaute Nouveau
Re : Icones dans "commandbarcontrol"

Bonjour Torème,

Tu peux dessiner tes boutons en faisant :

Menu Outils-Personnaliser
Clic droit sur le bouton - Editeur de boutons

Bon dessin ;)

à moins que les choix proposés dans "Modifier l'image du bouton" te suffisent.

C'est effectivement possible, mais la barre étant crée en VBA, les modifications apportées à l'icône ne sont pas sauvegardées et n'apparaissent plus au lancement suivant du fichier :confused:
J'ai vu une astuce qui permettait de copier une image présente dans la feuille et de la coller dans la procédure de création du bouton (avec 'paste' quelque chose...), à la place du "faceId", mais impossible de la retrouver !
 

Torème

XLDnaute Nouveau
Re : Icones dans "commandbarcontrol"

Bonjour,

Voici un petit exemple d'une barre perso et flottante avec des icônes personnalisées et posées sur une feuille de calculs.
shtCustomIcons est le nom de la feuille où sont les icônes.
J'avoue que le plus dur est de faire de jolies icônes.
Le code
Code:
 .FaceId = 1017

est remplacé par

Code:
   shtCustomIcons.Shapes("Icon1").Copy
   .PasteFace

Oups, vu le message après avoir répondu à Tototiti2008 !
je regarde ton fichier et reviens...
 

Torème

XLDnaute Nouveau
Re : Icones dans "commandbarcontrol"

Bonjour,

Voici un petit exemple d'une barre perso et flottante avec des icônes personnalisées et posées sur une feuille de calculs.
shtCustomIcons est le nom de la feuille où sont les icônes.
J'avoue que le plus dur est de faire de jolies icônes.
Le code
Code:
 .FaceId = 1017

est remplacé par

Code:
   shtCustomIcons.Shapes("Icon1").Copy
   .PasteFace

J'ai fait plusieurs essais, ça marche pas sur ma feuille :mad:
Il doit y avoir une erreur quelque part, puisque ça marche avec ton code...
Je continue de chercher :confused:
Merci quand même !
 

tototiti2008

XLDnaute Barbatruc
Re : Icones dans "commandbarcontrol"

Bonjour à tous,

sinon, on peut aussi le faire à partir d'un fichier image :

Code:
    Set Bt = Application.CommandBars("Standard").Controls.Add(Type:=msoControlButton, before:=5, temporary:=True)
    Bt.Picture = stdole.StdFunctions.LoadPicture("C:\test\bouton.gif")

Moi je l'avais fait avec une image gif de 16X16 pixels, et ça rend pas mal.
L'avantage de l'image en fichier est que tu peux définir la propriété Mask du bouton avec une autre image en noir et blanc (qui donne l'effet de "relief" lors du survol du bouton)
 

Torème

XLDnaute Nouveau
Re : Icones dans "commandbarcontrol"

Bonjour,

Attention, il faut nommer les shapes pour qu'elles soient appelées par le code.

Ex. Icon1, Icon2, ...

Bon, j'ai fini par trouvé :)
Le code était bon... Je suis resté fixé sur une éventuelle erreur dans les procédures alors que tout simplement j'avais oublié de renommer la feuille contenant les icônes dans les propriétés de VBA :eek: (je l'avais bien renommé dans Excel, mais c'était pas là qu'il fallait le faire :D)
Petite question à 1 € : tu fais les icônes dans un éditeur d'icônes ou un logiciel de dessin ?
 

Torème

XLDnaute Nouveau
Re : Icones dans "commandbarcontrol"

Bonjour à tous,

sinon, on peut aussi le faire à partir d'un fichier image :

Code:
    Set Bt = Application.CommandBars("Standard").Controls.Add(Type:=msoControlButton, before:=5, temporary:=True)
    Bt.Picture = stdole.StdFunctions.LoadPicture("C:\test\bouton.gif")

Moi je l'avais fait avec une image gif de 16X16 pixels, et ça rend pas mal.
L'avantage de l'image en fichier est que tu peux définir la propriété Mask du bouton avec une autre image en noir et blanc (qui donne l'effet de "relief" lors du survol du bouton)

Mais ça ne doit plus fonctionner si le fichier Excel est en réseau ou sur un autre poste ?
 

Discussions similaires

Réponses
28
Affichages
1 K

Statistiques des forums

Discussions
312 248
Messages
2 086 593
Membres
103 248
dernier inscrit
Happycat