Crie um Combobox
Os usuários da versões Excel 2010 e Excel 2007 podem clicar em Inserir a partir da aba Desenvolvedor, clicando no Combo Box na seção de Controles ActiveX.
Agora desenhe o combo Box na sua planilha:
Adicionando itens no Combobox
Para adicionar itens ao seu combobox, execute os seguintes passos.
1. Adicione o código abaixo na área de código de abertura da sua planilha (Workbook Open event), ou o adicione a outro módulo do seu código.
With Sheet1.ComboBox1.AddItem "Paris".AddItem "New York".AddItem "London"End With
Nota: Use Sheet2 se o seu combobox estiver localizado na sua segunda worksheet.
Resultado:
Nível da implementação: Intermediário.Versão em que foi testada: 2000 - 2013.Descrição: Um combobox é disponibilizado com 10 linhas e treze colunas de informação.
Segue o 1º exemplo:
Option ExplicitPrivate Sub UserForm_activate()
Dim MyList(10, 10) 'Definindo como array.' O combobox neste exemplo contém 3 colunas - Implemente quantas colunas desejarWith ComboBox1
.ColumnCount = 3.ColumnWidths = 75.Width = 220.Height = 15.ListRows = 6
End With' Definindo tanto a lista como o local de onde obter os dados (Colunas A, D, G)With ActiveSheet
' MyList (Linha{0 to 9}, Coluna{primeira}) = (Coluna A neste exemplo) ' Não se esqueça de continuar acrescentando para LINHA e COLUNA ' iniciando do zero Não de um MyList(0, 0) = .Range("A1")MyList(1, 0) = .Range("A2")MyList(2, 0) = .Range("A3")MyList(3, 0) = .Range("A4")MyList(4, 0) = .Range("A5")MyList(5, 0) = .Range("A6")MyList(6, 0) = .Range("A7")MyList(7, 0) = .Range("A8")MyList(8, 0) = .Range("A9")MyList(9, 0) = .Range("A10")' MyList (Linha {0 to 9}, Coluna{segunda}) = (Coluna D neste exemplo) MyList(0, 1) = .Range("D1")MyList(1, 1) = .Range("D2")MyList(2, 1) = .Range("D3")MyList(3, 1) = .Range("D4")MyList(4, 1) = .Range("D5")MyList(5, 1) = .Range("D6")MyList(6, 1) = .Range("D7")MyList(7, 1) = .Range("D8")MyList(8, 1) = .Range("D9")MyList(9, 1) = .Range("D10")' MyList (Linha {0 to 9}, Coluna {Terceira}) = (Coluna G neste exemplo) MyList(0, 2) = .Range("G1")MyList(1, 2) = .Range("G2")MyList(2, 2) = .Range("G3")MyList(3, 2) = .Range("G4")MyList(4, 2) = .Range("G5")MyList(5, 2) = .Range("G6")MyList(6, 2) = .Range("G7")MyList(7, 2) = .Range("G8")MyList(8, 2) = .Range("G9")MyList(9, 2) = .Range("G10")
End With' Agora populamos o ComboboxComboBox1.List() = MyList
End SubComo usar:
Abra uma planilha MS ExcelSelecione Editor Visual Basic (Tools/Macro/Visual Basic Editor)Na janela do editor VBA (VBE window), selecione Insert/UserFormSelecione ComboBox a partir da caixa de ferramentas (toolbox), cole-o no FormulárioClique o botão direito do mouse no formulárioSelecione Inserir códigoEntão copie e cole o código acimaTestando o código:Digite alguns dados nas colunas A, D e G na planilhaExiba o formulário novamente, agora verá as três colunas preenchidas no Combobox
Segue o 2º exemplo:
Populando o controle:Option ExplicitPrivate Sub UserForm_Initialize()With Me.ComboBox1.AddItem "Item 1".AddItem "Item 2"End WithEnd SubPopulando a partir da seleção de um range na planilha:Option ExplicitPrivate Sub CommandButton1_Click()With Sheet1 'code name.Range("A1") = Me.ComboBox1.ValueEnd WithEnd Sub
Outro:Private Sub UserForm_Initialize()With Worksheets("Sheet1")ComboBox1.List = .Range("A1:A" & .Range("A" & .Rows.Count).End(xlUp).Row).ValueEnd WithEnd Sub