Excel VBA Dependent Combo Boxes - Easy Excel Macros

Índice

Abaixo, veremos um programa em Excel VBA que cria um formulário de usuário que contém caixas de combinação dependentes. O formulário de usuário que vamos criar tem a seguinte aparência:

O usuário seleciona Animais em uma lista suspensa. Como resultado, o usuário pode selecionar um animal em uma segunda lista suspensa.

O usuário seleciona Esportes em uma lista suspensa. Como resultado, o usuário pode selecionar um esporte em uma segunda lista suspensa.

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 as caixas de combinação (primeiro à esquerda, a segunda à direita) e o botão 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 e do botão 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 ()
Com ComboBox1
.Adicionar item "Animais"
.Adicionar item "Esportes"
.Adicionar o item "Comida"
Terminar com
End Sub

Explicação: Essas linhas de código preenchem a primeira caixa de combinação.

Agora criamos a primeira parte do formulário de usuário. Embora já pareça legal, nada acontecerá ainda quando selecionarmos um item da primeira caixa de combinação.

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

11. Clique duas vezes na primeira caixa de combinação.

12. Adicione as seguintes linhas de código:

Sub ComboBox1_Change privado ()
Dim index As Integer
index = ComboBox1.ListIndex
ComboBox2.Clear
Selecione o índice de caso
Case Is = 0
Com ComboBox2
.Adicionar item "Cachorro"
.Adicionar item "Gato"
.Adicionar o item "Cavalo"
Terminar com
Case Is = 1
Com ComboBox2
.Adicionar item "Tênis"
.Adicionar o item "Natação"
.Adicionar item "Basquete"
Terminar com
Case Is = 2
Com ComboBox2
.Adicionar o item "Panquecas"
.Adicionar item "Pizza"
.AddItem "Chinês"
Terminar com
End Select
End Sub

Explicação: O Excel VBA usa o valor do índice da variável para testar cada instrução Case subsequente para ver com quais itens a segunda caixa de combinação deve ser preenchida. Vá até o nosso programa Select Case para aprender mais sobre a estrutura do Select Case.

13. Clique duas vezes no botão Importar.

14. Adicione a seguinte linha de código:

Private Sub CommandButton1_Click ()
Intervalo ("A1"). Valor = ComboBox2.Value
End Sub

Resultado:

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

wave wave wave wave wave