Views

Important:

Quaisquer necessidades de soluções e/ou desenvolvimento de aplicações pessoais/profissionais, que não constem neste Blog podem ser tratados como consultoria freelance à parte.

...

14 de setembro de 2013

Excel Tips - Populando Combo Box - Multi-Column




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.


Os usuários da versão Excel 2003. Clicarão no ícone do Combo Box na caixa de ferramentas.



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:


2. Para conectar o conteúdo do combobox a uma célula, clique com o botão direito do mouse no combobox (certifique-se de estar no modo design) e clique em Propriedades. Preencha E2 como a célula a ser preenchida.



Como popular um combobox nos formulários?

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 Explicit

Private Sub UserForm_activate()
Dim MyList(10, 10) 'Definindo como array.
' O combobox neste exemplo contém 3 colunas - Implemente quantas colunas desejar

With 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 Combobox
ComboBox1.List() = MyList
End Sub 

Como usar:
Abra uma planilha MS Excel
Selecione Editor Visual Basic (Tools/Macro/Visual Basic Editor)
Na janela do editor VBA (VBE window), selecione Insert/UserForm
Selecione ComboBox a partir da caixa de ferramentas (toolbox), cole-o no Formulário
Clique o botão direito do mouse no formulário
Selecione Inserir código
Então copie e cole o código acima
Testando o código:
Digite alguns dados nas colunas A, D e G na planilha
Exiba o formulário novamente, agora verá as três colunas preenchidas no Combobox

Segue o 2º exemplo:
Populando o controle:

Option Explicit 
 
Private Sub UserForm_Initialize() 
     
    With Me.ComboBox1 
        .AddItem "Item 1" 
        .AddItem "Item 2" 
    End With 
     
End Sub 

Populando a partir da seleção de um range na planilha:

Option Explicit 
 
Private Sub CommandButton1_Click() 
     
    With Sheet1 'code name
        .Range("A1") = Me.ComboBox1.Value 
    End With 
     
End Sub 

Outro:

Private Sub UserForm_Initialize()
    With Worksheets("Sheet1")
        ComboBox1.List = .Range("A1:A" & .Range("A" & .Rows.Count).End(xlUp).Row).Value
    End With
End Sub

Deixe os seus comentários! Envie este artigo, divulgue este link na sua rede social...

Tags:
VBA, Office, Application, Automation, field,  Plan, planilhas, column, Excel, Multi-Collumn, populando, combobox, 


Nenhum comentário:

Postar um comentário

eBooks VBA na AMAZOM.com.br

Vitrine