Como criar listas suspensas dinâmicas em cascata no Excel?
Você pode saber como criar uma lista suspensa de validação em cascata no Excel. No entanto, como criar listas suspensas dinâmicas em cascata no Excel? Este artigo apresenta um método VBA para realizar isso.
Criar listas suspensas dinâmicas em cascata com código VBA
Criar listas suspensas dinâmicas em cascata com código VBA
Como mostrado na captura de tela abaixo, você precisa criar uma lista principal que contenha os valores únicos da coluna Bebida e exibir todos os valores correspondentes na segunda lista suspensa com base na seleção na lista principal. O seguinte código VBA ajuda você a alcançar isso. Por favor, siga as instruções abaixo.
1. Primeiro, você precisa extrair todos os valores únicos da coluna Bebida. Selecione uma célula em branco, insira a fórmula matricial =SEERRO(ÍNDICE($A$2:$A$11; CORRESP(0;CONT.SE($J$1:J1; $A$2:$A$11); 0));"") na Barra de Fórmulas e pressione Ctrl + Shift + Enter. Em seguida, arraste a Alça de Preenchimento para obter todos os valores únicos. Veja a captura de tela:
Observação: Na fórmula, $A$2:$A$11 é o intervalo do qual você extrairá os valores únicos. J1 é a célula acima onde sua fórmula está localizada.
Dica: Se a fórmula for muito difícil de lembrar e manipular, a ferramenta Selecionar Duplicados & Células Únicas do Kutools para Excel será uma boa escolha para você extrair rapidamente todos os valores únicos de uma coluna.
Por favor, selecione a coluna que contém os valores únicos que você deseja extrair. Em seguida, habilite a utilidade clicando em Kutools > Selecionar > Selecionar Duplicados & Células Únicas. Na caixa de diálogo Selecionar Duplicados & Células Únicas, selecione a opção Valores Únicos (Incluir a primeira duplicata) e clique no botão OK. Todos os valores únicos serão selecionados na coluna. Copie e cole-os em um novo local. Veja a captura de tela:
Kutools para Excel: com mais de 200 complementos práticos para o Excel, grátis para experimentar sem limitações por 60 dias. Baixe e experimente agora gratuitamente!
2. Insira duas listas suspensas separadamente clicando em Desenvolvedor > Inserir > Caixa de Listagem (Controle ActiveX). Veja a captura de tela:
3. Clique com o botão direito na caixa de listagem principal e selecione Propriedades no menu de contexto. Na caixa de diálogo Propriedades, altere o campo (Nome) para Bebida ou outro nome conforme necessário, insira o intervalo de células que contém os valores únicos extraídos no campo Intervalo de Preenchimento da Lista e feche a caixa de diálogo.
4. Repita a etapa 3 para alterar o campo (Nome) da segunda caixa de listagem para Item na caixa de diálogo Propriedades.
5. Clique com o botão direito na guia da planilha e selecione Visualizar Código no menu ao clicar com o botão direito. Em seguida, copie o código VBA abaixo na janela de Código. Veja a captura de tela:
Código VBA: Criar listas suspensas dinâmicas em cascata no Excel
Dim xPreStr As String
Private Sub Drink_Click()
'Update by Extendoffice 2018/06/04
Dim I, xRows As Long
Dim xRg As Range
Dim xRegStr As String
Application.ScreenUpdating = False
xRegStr = Me.Drink.Text
Set xRg = Range("A2:A11")
xRows = xRg.Rows.Count
If xRegStr <> xPreStr Then
Me.Item.Clear
'Me.OtherListBoxName.Clear
Set xRg = xRg(1)
For I = 1 To xRows
If xRg.Offset(I - 1).Value = xRegStr Then
Me.Item.AddItem xRg.Offset(I - 1, 1).Value
'Me.OtherListBoxName.AddItem xRg.Offset(I - 1, 2).Value
End If
Next
xPreStr = xRegStr
End If
Application.ScreenUpdating = True
End Sub
Notas: No código, Bebida e Item são os nomes das duas caixas de listagem, altere-os para seus próprios nomes.
6. Pressione as teclas Alt + Q para fechar a janela Microsoft Visual Basic for Applications.
7. Desative o Modo de Design clicando em Desenvolvedor > Modo de Design.
A partir de agora, ao selecionar qualquer tipo de bebida, como Café na caixa de listagem principal, todos os itens de café serão exibidos na segunda. Selecionar Chá ou Vinho exibirá apenas os itens de chá ou vinho na segunda caixa de listagem. Veja a captura de tela:
Artigos relacionados:
- Como limpar a célula da lista suspensa dependente após a seleção ser alterada no Excel?
- Como criar listas suspensas dependentes em cascata no Excel?
- Como preencher automaticamente outras células ao selecionar valores na lista suspensa do Excel?
- Como criar um calendário em lista suspensa no Excel?
- Como salvar ou manter as seleções das caixas de listagem ActiveX no Excel?
Melhores Ferramentas de Produtividade para Office
Potencialize suas habilidades no Excel com o Kutools para Excel e experimente uma eficiência sem igual. O Kutools para Excel oferece mais de300 recursos avançados para aumentar sua produtividade e economizar tempo. Clique aqui para obter o recurso que você mais precisa...
O Office Tab traz interface com abas para o Office e facilita muito o seu trabalho
- Habilite a edição e leitura com abas no Word, Excel, PowerPoint, Publisher, Access, Visio e Project.
- Abra e crie vários documentos em novas abas na mesma janela, em vez de abrir novas janelas.
- Aumente sua produtividade em50% e reduza centenas de cliques do mouse todos os dias!