Domanda.

nome=enrico
cognome=alleva
versione=2000
conosco3=buono
macro=SI
email=allevae@libero.it
chr=572
problema=Caro ennius, ti invio il codice che ho scritto per creare una barra personalizzata per un programma di analisi di bilancio. Ti ringrazio per la risposta che mi vorrai gentilmente mandare e spero la soluzione. Non riesco a cambiare il colore dei pulsanti inseriti. congratulazione per il tuo sito che io regolarmente saccheggio. Sono pochi coloro che mettono a disposizione degli altri le proprie conoscenze di informatica.

Sub Barra()
'per creare una barra strumenti personalizzata
On Error Resume Next
Application.CommandBars("Menu").Delete
With Application.CommandBars.Add("Menu", msoBarTop, MenuBarBool, True)
.Visible = True
.Position = msoBarTop
.Protection = msoBarNoChangeVisible + msoBarNoCustomize
With .Controls
With .Add(msoControlButton)
.Caption = "Inizio"
.Style = msoButtonIconAndCaption
.FaceId = 41
.OnAction = "VaiInizio"
End With
With .Add(msoControlButton)
.Caption = "Nascondi"
.Style = msoButtonIconAndCaption
.FaceId = 40
.OnAction = "Nascondi"
End With
With .Add(msoControlButton)
.Caption = "Scopri"
.Style = msoButtonIconAndCaption
.FaceId = 38
.OnAction = "Scopri"
End With
With .Add(msoControlButton)
.Caption = "StatoPatrimoniale"
.Style = msoButtonIconAndCaption
.FaceId = 39
.OnAction = "VaiStatoPatrimoniale"
End With
With .Add(msoControlButton)
.Caption = "ContoEconomico"
.Style = msoButtonIconAndCaption
.FaceId = 39
.OnAction = "VaiContoEconomico"
End With
With .Add(msoControlButton)
.Caption = "Indici"
.Style = msoButtonIconAndCaption
.FaceId = 39
.OnAction = "VaiIndici"
End With

With .Add(msoControlButton)
.Caption = "Finanziaria"
.Type.ColorIndex = 6
.Style = msoButtonIconAndCaption
.FaceId = 39
.OnAction = "VaiFinanziaria"

End With
End With
End With

End Sub
 

Risposta.

ciao Enrico, sono profondamente contrario a modifiche sulle barre strumenti, perchè a casa propria ognuno fa ciò che gli aggrada, ma non può imporre ad altri delle sue scelte. Provare una routine che mi modifica le mie barre mi manda in bestia, soprattutto quando non si prevede, all'uscita da Excel, il ripristino delle precedenti barre. Mi domando come può un'estraneo, conoscere come mi sono impostato i miei menù per ripristinarli. Sì, perchè devi sapere che se modifichi via codice dei menu, queste modifiche poi restano su excel anche in seguito. Eppure sul sito, in due o tre risposte ho precisato queste cose. Comunque sulla tua domanda ti rispondo:
1) con FaceID puoi caricare solo le icone predefinite di excel, e non sono
modificabili, a meno che tu non te ne crei di nuove dall'editor di icone,
cosa che sconsiglio caldamente in quanto genera equivoci.
Al limite puoi usare FaceID = 1 che ti offre un pulsantino senza nessuna icona.
2) Il parametro Type fa parte del metodo ADD di una barra e determina solo il Tipo di controllo (espresso fra una delle diverse costanti (tipo msoControlButton) e non va usato per assegnargli la proprietà Colorindex.
3) Non capisco la mania di voler creare barre personalizzate, ma perchè non usate una UserForm, con dimensioni simili ad una barra, posizionandola dove caspita volete usando i comandi Top = N e Left = N dove N sono numeri in punti che fanno apparire la userform dove volete a partire dall'alto (Top) e da sinistra (Left). In queste userform potete inserire i commandbutton che vorrete, ed ai quali potrete assegnare il testo che vi pare e il colore di fondo che vi pare. E nel Click dei commandbutton, chiamare le varie routine o meglio, inserirle nell'evento.
Scusa, ma mi sono sfogato, un saluto, ennius