Outra dúvida muito comum na comunidade VBA. ComboBox Encadeados quer dizer que em dois ou mais ComboBoxes, ao atualizar os dados de um ComboBox, os outros são afetados. Isso é útil quando os dados entre eles estão relacionados, o que quase sempre é verdade.
No exemplo deste post, a relação dos dados será baseada na tradicional Produto e Categoria. A pasta de trabalho deve estar disposta em duas planilhas da seguinte forma:
É preciso que os dados da coluna NomeDaCategoria na planilha de Produtos estejam compatíveis com os da planlha Categorias, ou o filtro não funcionará.
Após isso, crie um UserForm com a seguinte “cara”:
Para que o código funcione sem precisar alterar nada, nomeie os campos da seguinte forma:
LabelCategorias
ComboBoxCategorias
LabelProdutos
ComboBoxProdutos
Em seguida, adicione o seguinte código o formulário:
Private Sub ComboBoxCategorias_Change() Call CarregaProdutos(Me.ComboBoxCategorias.List(Me.ComboBoxCategorias.ListIndex)) End Sub Private Sub UserForm_Initialize() Call CarregaCategorias End Sub Private Sub CarregaCategorias() Dim linha As Integer, coluna As Integer linha = 2 coluna = 1 Me.ComboBoxCategorias.Clear With Sheets("Categorias") Do While Not IsEmpty(.Cells(linha, coluna)) Me.ComboBoxCategorias.AddItem .Cells(linha, coluna).Value linha = linha + 1 Loop End With End Sub Private Sub CarregaProdutos(ByVal Categoria As String) Dim linha As Integer, colunaProduto As Integer, colunaCategoria As Integer linha = 2 colunaProduto = 1 colunaCategoria = 2 Me.ComboBoxProdutos.Clear With Sheets("Produtos") Do While Not IsEmpty(.Cells(linha, colunaProduto)) If .Cells(linha, colunaCategoria).Value = Categoria Then Me.ComboBoxProdutos.AddItem .Cells(linha, colunaProduto).Value End If linha = linha + 1 Loop End With End Sub |
Execute o formulário e selecione uma categoria no primeiro ComboBox. Veja que no ComboBox de produtos são mostrados apenas aqueles que pertecem à categoria selecionada:
Obviamente existem várias formas de fazer o mesmo trabalho. Invente a sua, ou, faça o download do exemplo no link abaixo:
😉
http://www.tomasvasquez.com.br/forum/download/file.php?id=2150
Bom proveito!
Valeu! Muito bom o exemplo. Funcional e prático.
Como faço uma Planilha (Menu) com dois COMBOBOX,
onde o primeiro Combobox navega pela Plan1 – Plan2 e Plan3.
Enquanto o segundo Combobox navega pela Plan4 – Plan5 e Plan6.
Alguém tem algum exemplo?
Tenho um exemplo que funciona somente o 1º Combobox, enquanto o segundo, não roda.
EM ANEXO O EXEMPLO. (VBA/Excel)
Grato,
Robson,
As possibilidades são muitas. Melhor discurtirmos no fórum:
http://www.tomasvasquez.com.br/forum
Nos vemos lá!