Hoje em Controle para Empresas Aula23 vamos começar a atualização da aba de DRE para automatizar essa parte do nosso formulário.
Caso prefira esse conteúdo no formato de vídeo-aula, assista ao vídeo abaixo!
Para receber por e-mail o(s) arquivo(s) utilizados na aula, preencha:
Essa é a vigésima terceira aula (Controle para Empresas Aula23) da nossa Série de Controle para Empresas. Nessa aula vamos dar início a construção da macro para cálculo de DRE.
Vamos fazer esses cálculos no VBA ao invés de fazer no Excel, então vamos construir essa macro do zero para esses cálculos.
Vamos utilizar a estrutura condicional (função IF) que você já sabe como funciona, vamos utilizar o MsgBox (caixa de mensagens), pois vamos precisar informar o usuário.
Uma estrutura importante é o CLng para transformar valor para long (principalmente na parte de datas), pois o VBA acaba tendo dificuldades na comparação de datas com números.
O worksheetfunction você já deve conhecer, que é para usar funções do Excel no VBA, então vamos utilizar o SumIfs (que seria o SOMASES no VBA) para poder somar os valores corresponde ao ano desejado.
E claro, tudo isso vai estar dentro de um botão, então vamos precisar utilizar os eventos no VBA para que ao clicar essa macro seja executada!
Acessando o código do formulário
Para fazer alterações no nosso formulário já criado, precisamos primeiramente abrir o ambiente de VBA, a partir do atalho do teclado Alt(+Fn)+F11. Assim poderemos continuar o nosso formulário de controle da empresa.
Mais uma vez lembrando que, para abrir o código do nosso formulário de interesse, devemos ir com o botão direito no formulário ControleDaEmpresa > exibir código.
Inserindo o código abaixo dentro dos códigos já existentes no formulário
Private Sub btCarregarDRE_Click()
Dim recBruta As Double, dedRec As Double, recLiq As Double, cmv As Double
Dim resBruto As Double, despOp As Double, resAntIR As Double
Dim impRenda As Double, resLiq As Double
Dim anoAnalise As Long
Dim abaVendas As Object, abaCaixa As Object, abaDRE As Object
If cxAnoDRE.Value = "" Then
MsgBox "A caixa de ano está vazia. Favor preencher a caixa com o ano desejado."
Exit Sub
End If
Set abaVendas = Sheets("Vendas")
Set abaCaixa = Sheets("Caixa")
Set abaDRE = Sheets("DRE")
anoAnalise = CLng(cxAnoDRE.Value)
recBruta = WorksheetFunction.SumIfs(abaVendas.Range("G:G"), abaVendas.Range("C:C"), ">=" & CLng(DateSerial(anoAnalise, 1, 1)), abaVendas.Range("C:C"), "<=" & CLng(DateSerial(anoAnalise, 12, 31)))
dedRec = 0
recLiq = recBruta - dedRec
cmv = WorksheetFunction.SumIfs(abaVendas.Range("I:I"), abaVendas.Range("C:C"), ">=" & CLng(DateSerial(anoAnalise, 1, 1)), abaVendas.Range("C:C"), "<=" & CLng(DateSerial(anoAnalise, 12, 31)))
resBruto = recLiq - cmv
despOp = -WorksheetFunction.SumIfs(abaCaixa.Range("G:G"), abaCaixa.Range("C:C"), ">=" & CLng(DateSerial(anoAnalise, 1, 1)), abaCaixa.Range("C:C"), "<=" & CLng(DateSerial(anoAnalise, 12, 31)), abaCaixa.Range("E:E"), "Despesa")
resAntIR = resBruto - despOp
impRenda = recBruta * 0.06
resLiq = resAntIR - impRenda
abaDRE.Cells(1, 2).Value = anoAnalise
abaDRE.Cells(2, 2).Value = recBruta
abaDRE.Cells(3, 2).Value = dedRec
abaDRE.Cells(4, 2).Value = recLiq
abaDRE.Cells(5, 2).Value = cmv
abaDRE.Cells(6, 2).Value = resBruto
abaDRE.Cells(7, 2).Value = despOp
abaDRE.Cells(8, 2).Value = resAntIR
abaDRE.Cells(9, 2).Value = impRenda
abaDRE.Cells(10, 2).Value = resLiq
abaDRE.Cells(4, 3).Value = recLiq / recBruta
abaDRE.Cells(6, 3).Value = resBruto / recBruta
abaDRE.Cells(8, 3).Value = resAntIR / recBruta
abaDRE.Cells(10, 3).Value = resLiq / recBruta
abaDRE.Range("A:C").Columns.AutoFit
Set abaVendas = Nothing
Set abaCaixa = Nothing
Set abaDRE = Nothing
End Sub
Explicação do código acima:
Veja um exemplo pronto depois de rodar o DRE para o ano de 2021, mostrado em aula:
OBS: Para mais detalhes dos tipos de variáveis no VBA visite essa página.
OBS2: Explicamos a estrutura If em outro post do nosso blog também de forma detalhada, caso queira conferir.
OBS3: Para conferir mais detalhes sobre usar as funções do Excel no VBA (WorksheetFunction) você pode dar uma olhada nesse outro post em que abordamos justamente isso.
Até agora, na parte 1, conseguimos:
Nas próximas aulas vamos fechar o código dessa aba.
Nessa aula (Controle para Empresas Aula23) você resumidamente lidou com:
Até mais, pessoal! Fique ligado no nosso canal do Youtube para mais conteúdo de Excel, VBA e Power BI toda semana! Um abraço!
Para acessar outras publicações de VBA, clique aqui!
Quer aprender mais sobre VBA com um Minicurso Gratuito?