|
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
|