Blog

Postado em em 8 de janeiro de 2021

Fórmulas do Excel no VBA utilizando a propriedade FormulaLocal

Fórmulas do Excel no VBA

Nessa publicação vou te mostrar como você pode utilizar as fórmulas do Excel no VBA alterando a propriedade FormulaLocal das células!

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:

Estamos na parte de estoque disponível do nosso formulário de controle de Estoques, e será nele que trabalharemos nessa aula de hoje. Essa é a décima terceira 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.

Nessa aula vamos:

  • Utilizar fórmulas do Excel atreladas a um código para atualizar os estoques disponíveis na nossa gestão de estoque Excel

Como atualizar os estoques com fórmulas do Excel e VBA?

O que queremos fazer é atualizar a caixa de listagem de estoque à esquerda do nosso formulário de estoques, usando fórmulas do Excel e VBA associados para atingir esse objetivo. Para isso, teremos que:

  • Criar abas de Estoque e Caixa_Estoque
  • Abrir o VBA, com Alt(+Fn)+F11
  • Procurar pelo FormularioControleEstoque
  • Clicar com botão direito > Exibir código
  • Inserir o código abaixo como uma nova Sub dentro do formulário
Sub atualiza_caixa_listagem_estoque()

Sheets("Estoque").Cells.Clear

Sheets("Controle_de_Produtos").Range("B:B").Copy Sheets("Estoque").Range("A1")


Sheets("Estoque").Range("B1").Value = "Compras"
Sheets("Estoque").Range("C1").Value = "Vendas"
Sheets("Estoque").Range("D1").Value = "Estoque"

Sheets("Estoque").Range("B2").FormulaLocal = "=SOMASES(Compras_e_Vendas!C:C;Compras_e_Vendas!B:B;Estoque!A2;Compras_e_Vendas!D:D;""Compra"")"
Sheets("Estoque").Range("C2").FormulaLocal = "=SOMASES(Compras_e_Vendas!C:C;Compras_e_Vendas!B:B;Estoque!A2;Compras_e_Vendas!D:D;""Venda"")"
Sheets("Estoque").Range("D2").FormulaLocal = "=B2-C2"

End Sub

Explicação do código acima:

  • A primeira coisa a ser feita é apagar todas as informações da aba Estoque. A primeira linha do código dá um “clear” (apaga) todas as células da aba Estoque.
  • A segunda linha faz duas coisas: copia e cola informações. Copiaremos (através do copy VBA) toda a coluna de produtos (B) da aba Controle_de_Produtos, que serão coladas na aba Estoque, na célula A1.
  • Em seguida, preencheremos o resto do cabeçalho que “falta” na nossa tabela de estoque disponível. Na aba Estoque, em B1 será escrito “Compras”, em C1, “Vendas, e em D1, “Estoque”.
  • Na célula B2 escreveremos a fórmula SOMASES, somando tudo da coluna C da aba Controle_de_Produtos, desde que na coluna B da aba Controle_de_Produtos esteja o produto desejado (nesse caso dado pela célula A2 da aba Estoque), e que na coluna D da aba Controle_de_Produtos esteja escrito “Compra”
  • Na célula C2 escreveremos a fórmula SOMASES, somando tudo da coluna C da aba Controle_de_Produtos, desde que na coluna B da aba Controle_de_Produtos esteja o produto desejado (nesse caso dado pela célula A2 da aba Estoque), e que na coluna D da aba Controle_de_Produtos esteja escrito “Venda”
  • Na célula C2 escreveremos a fórmula de diferença entre C2 e B2 (C2-B2), para termos o valor de estoque resultante de compras após as vendas feitas (o que sobrou das compras)
  • Lembrando que as últimas três instruções utilizaram da propriedade FormulaLocal VBA, que permite utilizar as fórmulas do Excel no VBA exatamente como são escritas no Excel, sem tradução ou obrigatoriamente escrevendo as fórmulas em inglês

Além disso, precisaremos atrelar esse código ao evento de abertura do nosso formulário de estoque, para garantir que os estoques vão ser atualizados sempre que abrirmos o formulário. Assim, teremos sempre os números atualizados.

Para isso, devemos “chamar” (call) a macro que acabamos de criar no evento de abertura do formulário. Ela será a última linha do código abaixo:

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


Com isso, conseguimos garantir que a nossa macro de atualização de estoque disponível será acionada sempre que abrirmos o Formulário de Estoques.

Conclusão

Nesse post aprendemos o começo do código para atualizar o nosso estoque disponível, que será complementado com o próximo post.

Nele vimos algumas funções do Excel, como SOMASES e algumas do VBA como FormulaLocal VBA, Copy Paste VBA (copiar e colar VBA), que, associadas, permitem que façamos esse preenchimento da tabela na aba de Estoques.

Até o próximo post! Fique ligado no nosso canal do Youtube para mais conteúdo de Power BI! Um abraço!

Hashtag Treinamentos

Para acessar outras publicações de VBA, clique aqui!


Quer aprender mais sobre VBA com um Minicurso Gratuito?


Estão abertas as inscrições para o Programa Completo Excel Impressionador!

Clique no botão abaixo para mais informações: