Ciao a tutti,
ho creato su un figlio excel un elenco sul quel ho inserito varie macro, ho creato poi una barra personalizzate 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
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
Ciao e grazie a chi mi può aiutare