Ciao buongiorno, avrei se possibile bisogno di un consiglio,
ho creato su un figlio excel un elenco, sul quele ho inserito varie
macro, ho creato poi una barra personalizzata per farle eseguire, mi
ritrovo però in difficoltà nell 'assegnare alla combobox creata
una macro in base alla scelta che l 'utente effettuerà,
Questo è il codice della barra
>>QUESTO L'HO INSERITO ThisWorkbook
Private Sub Workbook_Open()
Call CreaBarra
End Sub
Private Sub Workbook_BeforeClose(Cancel As Boolean)
Call CreaBarra
Application.CommandBars("Menu").Delete
End Sub
>>QUESTO L'HO INSERITO IN UN MODULO CHIAMATO "bas"
Public Sub CreaBarra() 'per creare una barra strumenti personalizzata
On Error Resume Next
'cancello la barra qualora già esista
Application.CommandBars("Menu").Delete
'creo la barra e imposto alcune proprietà
With Application.CommandBars.Add("Menu", msoBarTop, MenuBarBool, True)
.Visible = True
.Position = msoBarTop
.Protection = msoBarNoChangeVisible + msoBarNoCustomize
'aggiungo due pulsanti ed imposto le proprietà
With .Controls
With .Add(msoControlButton)
.Caption = "Nuovo Associato"
.Style = msoButtonIconAndCaption
'icona di office
.FaceId = 40
'nome funzione
.OnAction = "Associato"
End With
With .Add(msoControlButton)
.Caption = "Select Color"
.Style = msoButtonIconAndCaption
End With
'Aggiungo una combobox
Set combo = Application.CommandBars("Menu") _
.Controls.Add(msoControlComboBox)
With combo
.AddItem "Rosso", 1
.AddItem "Verde", 2
.AddItem "Arancio", 3
.AddItem "Blu", 4
.AddItem "Viola", 5
.DropDownLines = 5
End With
End With
End With
End Sub
Ora vorrei poter far eseguire la seguente macro nel momento in cui l'utente sceglie il colore rosso nel mnù della combobox
Sub Rosso()
Application.ScreenUpdating = False
Application.DisplayAlerts = False
Range("A1:BT1").Select
With Selection.Interior
.Pattern = xlSolid
.PatternColorIndex = xlAutomatic
.color = 5066944
End With
Range("A2:BT2").Select
With Selection.Interior
.Pattern = xlSolid
.PatternColorIndex = xlAutomatic
.color = 12106214
End With
Range("A3:BT3").Select
With Selection.Interior
.Pattern = xlSolid
.PatternColorIndex = xlAutomatic
.color = 14474738
End With
Rows("2:3").Select
Selection.Copy
Rows("4:500").Select
Selection.PasteSpecial Paste:=xlPasteFormats, Operation:=xlNone, _
SkipBlanks:=False, Transpose:=False
Application.CutCopyMode = False
Range("A2").Select
End Sub
Ringrazio per l'aiuto ciao FABIO