Combobox problema!!

lunedì 03 marzo 2008 - 10.33

xcocorico Profilo | Newbie

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

Dainesi Profilo | Senior Member

Puoi agire in due modi:

in una cella nascosta passi il valore della combo (che poi è il valore "raccolto" in una cella predefinita) ad una funzione la quale richiama una Sub (o Macro che dir si voglia ...) tramite un costrutto Select Case

leghi alla combo un evento nel quale leggi il risultato della combo tramite valore = combo.List(combo.ListIndex) e poi procedi con la chiamata a questa o quella Sub tramite il costrutto Select Case
Partecipa anche tu! Registrati!
Hai bisogno di aiuto ?
Perchè non ti registri subito?

Dopo esserti registrato potrai chiedere
aiuto sul nostro Forum oppure aiutare gli altri

Consulta le Stanze disponibili.

Registrati ora !
Copyright © dotNetHell.it 2002-2024
Running on Windows Server 2008 R2 Standard, SQL Server 2012 & ASP.NET 3.5