Nesta aula vamos te ensinar o funcionamento da caixa de listagem no VBA, que é uma caixa para listar informações e facilitar a seleção dos dados!
Caso prefira esse conteúdo no formato de vídeo-aula, assista ao vídeo abaixo!
Para receber a planilha que usamos na aula no seu e-mail, preencha:
Essa é a décima quinta aula da nossa série de Controle de Estoque Completo no VBA, onde estaremos aprendendo a lidar com os eventos no formulário de controle de estoque, o principal, e no de controle de produtos, o auxiliar.
Nessa aula vamos:
O que queremos fazer é atualizar a caixa de listagem de transações à direita do nosso formulário de estoques, usando código em VBA associados para atingir esse objetivo. Para isso, teremos que:
atualiza_caixa_listagem_estoque() . . . Sheets("Caixa_Estoque").Cells.Clear Sheets("Estoque").AutoFilterMode = False If caixa_procurar.Value <> "" Then Sheets("Estoque").UsedRange.AutoFilter 1, "*" & caixa_procurar.Value & "*" End If Sheets("Estoque").UsedRange.Copy Sheets("Caixa_Estoque").Range("A1") Sheets("Estoque").AutoFilterMode = False linha = Sheets("Caixa_Estoque").Range("A1000000").End(xlUp).Row If linha = 1 Then linha = 2 FormularioControleEstoque.caixa_listagem_estoque.ColumnCount = 4 FormularioControleEstoque.caixa_listagem_estoque.ColumnHeads = True FormularioControleEstoque.caixa_listagem_estoque.ColumnWidths = "80;50;50;50" FormularioControleEstoque.caixa_listagem_estoque.RowSource = "Caixa_Estoque!A2:D" & linha
Explicação dessa parte da sub atualiza_caixa_listagem_estoque():
Esse código sozinho não é suficiente para atualizar a nossa caixa de listagem. Ele deve ser atrelado a eventos.
Ele será chamado quando abrirmos o formulário, quando adicionarmos, excluirmos produtos.
Com isso, ele será rodado a cada “passo” feito no formulário principal e no formulário auxiliar de Controle de Produtos, e garantirá que ele atualizará a lista de produtos no nosso estoque.
Observe abaixo os códigos nos formulários diferentes que necessitam ser inclusos para que ele funcione da maneira correta:
FORMULÁRIO DE CONTROLE DE ESTOQUE:
Private Sub CommandButton5_Click() Call atualiza_caixa_listagem_estoque End Sub
Private Sub UserForm_Initialize() caixa_tipo.AddItem "Compra" caixa_tipo.AddItem "Venda" Call atualiza_caixa_produtos Call atualiza_caixa_listagem_transacoes Call atualiza_caixa_listagem_estoque End Sub
FORMULÁRIO CONTROLE DE PRODUTOS:
Private Sub UserForm_QueryClose(Cancel As Integer, CloseMode As Integer) Call FormularioControleEstoque.atualiza_caixa_listagem_estoque Call FormularioControleEstoque.atualiza_caixa_produtos End Sub
Explicação das macros do Controle de Estoque:
A linha anterior a cada “End Sub” representa o comando de chamar a macro que criamos nessa aula, a macro de atualizar a nossa caixa de listagem de transações (atualiza_caixa_listagem_estoques).
Então, ao abrir o formulário (UserForm_Initialize), ao clicar no botão de procurar (CommandButton5_Click), o nosso código irá rodar e atualizar os produtos necessários e filtrados conforme a gente queira e escreva na caixa de “procurar”.
Explicação da macro do Controle de Produtos:
Chamaremos a macro criada para atualizar a caixa de listagem de estoque e a caixa de produtos ao fechar o formulário de controle de produtos.
Ou seja, ao fechá-lo, adicionando, excluindo produtos ou não fazendo nada, devemos atualizar todos os lugares que têm produtos a serem possivelmente adicionados ou excluídos, para garantir a lista atualizada.
Nessa aula você aprendeu o passo a passo para criar a caixa de listagem VBA para exibir os produtos disponíveis no estoque da empresa de exemplo.
Esse passo a passo foi bem similar ao que seguimos para criar a caixa de transações que exibia as transações de compra e venda, feita em um post de algumas aulas atrás.
Até o próximo post! Fique ligado no nosso canal do Youtube para mais conteúdo de Excel e VBA!
Para acessar outras publicações de VBA, clique aqui!
Quer aprender mais sobre VBA com um Minicurso Gratuito?