Excel VBA Multicolumn Combo Box - Easy Excel Macros

Índice

Abaixo, veremos um programa em Excel VBA que cria um formulário de usuário que contém um caixa de combinação de várias colunas.

O formulário de usuário que vamos criar tem a seguinte aparência:

Para criar este formulário de usuário, execute as seguintes etapas.

1. Abra o Editor do Visual Basic. Se o Project Explorer não estiver visível, clique em View, Project Explorer.

2. Clique em Inserir, Formulário do usuário. Se a caixa de ferramentas não aparecer automaticamente, clique em Exibir, Caixa de ferramentas. Sua tela deve ser configurada conforme abaixo.

3. Adicione o rótulo, a caixa de combinação e os botões de comando. Depois de concluído, o resultado deve ser consistente com a imagem do formulário do usuário mostrada anteriormente. Por exemplo, crie um controle de caixa de combinação clicando em ComboBox na caixa de ferramentas. Em seguida, você pode arrastar uma caixa de combinação no formulário do usuário.

4. Você pode alterar os nomes e as legendas dos controles. Os nomes são usados ​​no código VBA do Excel. As legendas são aquelas que aparecem na tela. É uma boa prática alterar os nomes dos controles, mas não é necessário aqui porque temos apenas alguns controles neste exemplo. Para alterar a legenda do formulário do usuário, rótulo e botões de comando, clique em Exibir, Janela de propriedades e clique em cada controle.

5. Para mostrar o formulário de usuário, coloque um botão de comando em sua planilha e adicione a seguinte linha de código:

Private Sub CommandButton1_Click ()
UserForm1.Show
End Sub

Agora vamos criar o Sub UserForm_Initialize. Quando você usa o método Show para o formulário do usuário, este sub será executado automaticamente.

6. Abra o Editor do Visual Basic.

7. No Project Explorer, clique com o botão direito do mouse em UserForm1 e clique em View Code.

8. Escolha Userform na lista suspensa à esquerda. Escolha Inicializar na lista suspensa à direita.

9. Adicione as seguintes linhas de código:

Sub UserForm_Initialize privado ()
ComboBox1.ColumnCount = 2
Dim Films (1 a 5, 1 a 2) como fio
Dim i As Integer, j As Integer
Filmes (1, 1) = "Senhor dos Anéis"
Filmes (2, 1) = "Velocidade"
Filmes (3, 1) = "Star Wars"
Filmes (4, 1) = "O Poderoso Chefão"
Filmes (5, 1) = "Pulp Fiction"
Filmes (1, 2) = "Aventura"
Filmes (2, 2) = "Ação"
Filmes (3, 2) = "Ficção científica"
Filmes (4, 2) = "Crime"
Filmes (5, 2) = "Drama"
ComboBox1.List = Filmes
End Sub

Explicação: A primeira linha de código define o número de colunas da caixa de combinação como 2. Em vez de definir o número de colunas em tempo de execução, você também pode definir essa configuração em tempo de design. Para fazer isso, clique com o botão direito do mouse no controle da caixa de combinação, clique em Propriedades e defina a propriedade ColumnCount como 2. Em seguida, declaramos e inicializamos uma matriz bidimensional. A última linha de código atribui a matriz à caixa de combinação.

Agora criamos a primeira parte do formulário de usuário. Embora já pareça legal, nada acontecerá ainda quando clicarmos nos botões de comando no formulário do usuário.

10. No Project Explorer, clique duas vezes em UserForm1.

11. Clique duas vezes no botão OK.

12. Adicione as seguintes linhas de código:

Private Sub CommandButton1_Click ()
Descarregue-me
MsgBox "Você selecionou" & ComboBox1.Value
On Error Resume Next
MsgBox "Você gosta de" & ComboBox1.Column (1) e "filmes"
End Sub

Observação: essas linhas de código fecham o formulário de usuário do Excel VBA e exibem o item e o gênero selecionados. A declaração 'On Error Resume Next' ignora o erro quando o usuário preenche seu próprio filme (neste caso, não há gênero disponível).

13. Clique duas vezes no botão Cancelar.

14. Adicione a seguinte linha de código:

Private Sub CommandButton2_Click ()
Descarregue-me
End Sub

Resultado quando você seleciona Velocidade e clica em OK.

Você vai ajudar o desenvolvimento do site, compartilhando a página com seus amigos

wave wave wave wave wave