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

Questions pour la création d'un barre d'outils personnalisé

15 réponses
Avatar
Alex
Bonjour =E0 tous,=20

Je souhaiterai personnaliser mon ruban compl=E9ment avec des fonctions de b=
outon Excel existant et des macros "perso", et voudrais savoir si quelqu'un=
connaitrait le N=B0 ID pour l'ic=F4ne "Couleur Police" et l'ic=F4ne "Coule=
ur remplissage cellule" dans le but de l'int=E9grer en tant que controls.ad=
d dans une barre controls.add si je peux dire, car j'ai tent=E9 de trouv=E9=
cette information dans outils options personnaliser le ruban, pensant que =
cela serait indiqu=E9 ?
Et le top serait de savoir si je peux limiter l'affichage =E0 5 couleurs, u=
niquement pour les ic=F4nes personnalis=E9es, dans le ruban Accueil l'ensem=
ble des couleurs peuvent rester ?
De m=EAme j'ai cr=E9er une mise en forme automatique, est il possible de n'=
ajouter que cette mise forme cr=E9e dans mon ruban compl=E9ment ? si oui, c=
omment fait on cela.
Merci par avance de votre aide.
Alex

10 réponses

1 2
Avatar
isabelle
bonjour Alex,

Sub Excel_CommandBars_List()
Application.ScreenUpdating = False
Application.DisplayAlerts = False
On Error Resume Next
Sheets("Excel_CommandBar").Delete
Dim cb As CommandBar
Worksheets.Add
ActiveSheet.Name = "Excel_CommandBar"
[A1] = "ID": [B1] = "Nom Local": [C1] = "VBA name"
[D1] = "Control ID": [E1] = "Control caption"
i = 2
With ActiveSheet
For Each cb In CommandBars
For Each c In cb.Controls
.Cells(i, 1).Value = cb.ID
.Cells(i, 2).Value = cb.NameLocal
.Cells(i, 3).Value = cb.Name
.Cells(i, 4).Value = c.ID
.Cells(i, 5).Value = c.Caption
i = i + 1
Next c
Next cb
Range("A:F").Columns.AutoFit
End With
Application.DisplayAlerts = True
Application.ScreenUpdating = True
End Sub

isabelle
Avatar
isabelle
aussi,

MsgBox Application.CommandBars("Formatting").Controls("Couleur de
police").ID
MsgBox Application.CommandBars("Formatting").Controls("Couleur de
remplissage").ID

isabelle
Avatar
Alex
Merci Isabelle,

J'ai bien lancé ta macro, celle ci m'a permis d'obtenir une liste de code ID, mais le code ID "couleur police" testé m'envoie un message d'erreur.
Il faut que je teste plus en profondeur.
Merci encore pour pour ton aide.
Cordialement.
Alex
Avatar
isabelle
bonjour Alex,

j'ai fait un test avec le FaceId = 401 --> "Couleur Police"
j'ai mit le control sur le menu cellule (click droit sur la feuille)

Sub Add_Commmand_to_Cell_menu()
With Application.CommandBars("Cell").Controls.Add(msoControlButton)
.Caption = "Said Hello"
.BeginGroup = True
.FaceId = 401
.OnAction = "Hello"
End With
End Sub

Sub Hello()
MsgBox "Hello"
End Sub

Sub Reset_Cell_menu() 'suprime les controls perso
Application.CommandBars("Cell").Reset
End Sub


isabelle

Le 2014-02-12 18:16, Alex a écrit :
Merci Isabelle,

J'ai bien lancé ta macro, celle ci m'a permis d'obtenir une liste de code ID, mais le code ID "couleur police" testé m'envoie un message d'erreur.
Il faut que je teste plus en profondeur.
Merci encore pour pour ton aide.
Cordialement.
Alex

Avatar
Alex
Bonjour Isabelle,

Merci encore pour ton message, j'ai testé tes lignes cela fonctionne bien .
Mais j'ai du mal m'exprimer, je souhaiterai afficher l'outil Couleur police et couleur remplissage dans mon ruban complément. De plus pour ces deux fonctions je souhaiterais y mettre que 5 couleurs bien définis.
As tu une idée pour faire cela ?
De même toujours dans mon ruban complément, j'aurai aimé pouvoir mett re mes deux modèle "Mettre sous forme de tableau", si cela est possible ?
Mon but final étant de faire dans le ruban complément un barre d'outil modele utilisateur et je ferai cela en format xlma
Merci encore pour ton aide.
Alex
Avatar
Baton .rouge
On Fri, 14 Feb 2014 07:35:56 -0800 (PST), Alex
wrote:

Bonjour Isabelle,

Merci encore pour ton message, j'ai testé tes lignes cela fonctionne bien.
Mais j'ai du mal m'exprimer, je souhaiterai afficher l'outil Couleur police et couleur remplissage dans mon ruban complément. De plus pour ces deux fonctions je souhaiterais y mettre que 5 couleurs bien définis.
As tu une idée pour faire cela ?
De même toujours dans mon ruban complément, j'aurai aimé pouvoir mettre mes deux modèle "Mettre sous forme de tableau", si cela est possible ?
Mon but final étant de faire dans le ruban complément un barre d'outil modele utilisateur et je ferai cela en format xlma
Merci encore pour ton aide.
Alex




T'as essayer la l'enregistrement d'une macro et de la personnalisation
manuelle de ta barre d'outil. Suffit ensuite de consulter le code vba
de la macro.

--
Vous voulez un conseil ?
Ne faites jamais confiance à ceux qui vous donnent des conseils.
Avatar
isabelle
bonjour Alex,

voici un autre exemple, pour les couleurs j'ai utilisé un msoControlButton ->
style msoButtonAutomatic mais il y en a d'autre

msoControlButton - style
0 msoButtonAutomatic
2 msoButtonCaption
1 msoButtonIcon
3 msoButtonIconAndCaption
11 msoButtonIconAndCaptionBelow
7 msoButtonIconAndWrapCaption
15 msoButtonIconAndWrapCaptionBelow
14 msoButtonWrapCaption


Sub barre_menus_couleur_SUPR()
Dim Cbar As CommandBar
CommandBars("MaBarre_Couleur").Delete
End Sub

Sub barre_menus_couleur()
Dim Cbar As CommandBar, Cbut As CommandBarButton
Dim Cpop1 As CommandBarPopup
Dim x As Byte

Set Cbar = CommandBars.Add(Name:="MaBarre_Couleur", Position:=msoBarTop,
temporary:=True)
Cbar.Protection = msoBarNoMove '+ msoBarNoCustomize

Set Cpop1 = Cbar.Controls.Add(msoControlPopup)
With Cpop1
.Caption = "Mes_Couleur"
.Tag = "sm1"
End With

Set Cbut = Cpop1.Controls.Add(msoControlButton)
With Cbut
.Style = msoButtonAutomatic
.FaceId = 482
' .Caption = "Rouge"
.OnAction = "Couleur_Rouge"
.Tag = "sm1cbut1"
End With

Set Cbut = Cpop1.Controls.Add(msoControlButton)
With Cbut
.Style = msoButtonAutomatic
.FaceId = 394
' .Caption = "Vert"
.OnAction = "Couleur_Vert"
.Tag = "sm1cbut2"
End With

Cbar.Visible = True
End Sub

Sub Couleur_Rouge()
With Selection.Font
.Color = -16776961
.TintAndShade = 0
End With
End Sub

Sub Couleur_Vert()
With Selection.Font
.Color = -11489280
.TintAndShade = 0
End With
End Sub

isabelle
Avatar
Alex
Merci pour vos réponses.

Pour Répondre à Baton.rouge, oui j'avais tenté de passer par la perso nnalisation du Ruban en manuel et fais cela avec l'enregistreur de macro, s oit la macro était vide, et lorsque je récupérai des lignes, je ne po uvais pas l'exploiter. Vu que je suis un novice en vba, j'utilise beaucoup l'enregistreur ;) mais merci pour ta aide.

Alors là Isabelle, je te dis Chapeau ;), c'est super ce que tu m'as propo sé.

Sais tu si je peux remplacer le "face.id" par un remplissage de la zone en zone couleur sur laquelle je rentrerai ma référence couleur ?

Merci encore pour votre aide.
Alex
Avatar
isabelle
bonjour Alex,

je suis contente de voir que ton projet avance bien,
le plus simple que je vois, surtout si ton fichier se promène, est d'ajouter une
feuille à ton classeur et y insérer tes images.ico et de masquer cette feuille
Sheets("Icons").Visible = xlVeryHidden

dans cette exemple j'ai nommé cette feuille "Icons"
sur la feuille "Icons" j'ai inséré en premier une image ( MONimage.ico) de
couleur rouge, alors cette image est le Shape(1)
la deuxième image insérée sera le Shape(2) etc...

remarque la différence entre le code du bouton Rouge
Sheets("Icons").Shapes(1).CopyPicture
.PasteFace
et le code du bouton Vert
.FaceId = 482

remarque également la propriété .OnAction qui est affecté a la même procédure
dans les deux cas mais avec l'ajout d'un argument "nc" qui peut être de 1 à 5 ou
plus
au lieu d'avoir une procédure par couleur.

'-------------------------------------------------------------------------------------
With Cbut
.Style = msoButtonAutomatic
.OnAction = "'Couleur 1'"
.Tag = "sm1cbut1"
Sheets("Icons").Shapes(1).CopyPicture
.PasteFace
End With

Set Cbut = Cpop1.Controls.Add(msoControlButton)
With Cbut
.Style = msoButtonAutomatic
.OnAction = "'Couleur 2'"
.Tag = "sm1cbut2"
.FaceId = 394
End With
'-------------------------------------------------------------------------------------
Sub couleur(nc As Integer)
Select Case nc
Case 1: Selection.Font.Color = RGB(180, 0, 0) ' rouge
Case 2: Selection.Font.Color = RGB(0, 116, 0) ' vert
Case 3: Selection.Font.Color = RGB(58, 95, 84) ' bleu
Case 4: Selection.Font.Color = RGB(255, 255, 0) ' jaune
Case 5: Selection.Font.Color = RGB(149, 109, 169) ' brun
End Select
End Sub
'-------------------------------------------------------------------------------------

isabelle


Le 2014-02-14 18:10, Alex a écrit :
Sais tu si je peux remplacer le "face.id" par un remplissage de la zone en zone couleur sur laquelle je rentrerai ma référence couleur ?
Alex
Avatar
isabelle
j'oubliais le fichier ico

http://cjoint.com/?DBpgKaT1OVh

que tu pourras modifier à ta guise,

isabelle

Le 2014-02-14 23:51, isabelle a écrit :
bonjour Alex,

je suis contente de voir que ton projet avance bien,
le plus simple que je vois, surtout si ton fichier se promène, est d'ajouter une
feuille à ton classeur et y insérer tes images.ico et de masquer cette feuille
Sheets("Icons").Visible = xlVeryHidden

dans cette exemple j'ai nommé cette feuille "Icons"
sur la feuille "Icons" j'ai inséré en premier une image ( MONimage.ico) de
couleur rouge, alors cette image est le Shape(1)
la deuxième image insérée sera le Shape(2) etc...

remarque la différence entre le code du bouton Rouge
Sheets("Icons").Shapes(1).CopyPicture
.PasteFace
et le code du bouton Vert
.FaceId = 482

remarque également la propriété .OnAction qui est affecté a la même procédure
dans les deux cas mais avec l'ajout d'un argument "nc" qui peut être de 1 à 5 ou
plus
au lieu d'avoir une procédure par couleur.

'-------------------------------------------------------------------------------------

With Cbut
.Style = msoButtonAutomatic
.OnAction = "'Couleur 1'"
.Tag = "sm1cbut1"
Sheets("Icons").Shapes(1).CopyPicture
.PasteFace
End With

Set Cbut = Cpop1.Controls.Add(msoControlButton)
With Cbut
.Style = msoButtonAutomatic
.OnAction = "'Couleur 2'"
.Tag = "sm1cbut2"
.FaceId = 394
End With
'-------------------------------------------------------------------------------------

Sub couleur(nc As Integer)
Select Case nc
Case 1: Selection.Font.Color = RGB(180, 0, 0) ' rouge
Case 2: Selection.Font.Color = RGB(0, 116, 0) ' vert
Case 3: Selection.Font.Color = RGB(58, 95, 84) ' bleu
Case 4: Selection.Font.Color = RGB(255, 255, 0) ' jaune
Case 5: Selection.Font.Color = RGB(149, 109, 169) ' brun
End Select
End Sub
'-------------------------------------------------------------------------------------


isabelle


Le 2014-02-14 18:10, Alex a écrit :
Sais tu si je peux remplacer le "face.id" par un remplissage de la zone en
zone couleur sur laquelle je rentrerai ma référence couleur ?
Alex



1 2