Notifications
Clear all

Soma Acumulada Dinâmica

12 Posts
3 Usuários
0 Reactions
2,739 Visualizações
(@squat)
Posts: 43
Eminent Member
Topic starter
 

Bom dia pessoal,

Fiz uma soma acumulada (Valor 1 + Valor 2) por meses ao longo de cada ano. O que eu não estou conseguindo é deixá-la de forma dinâmica, fiz para os anos de 2015, 2016 e 2017 (até outubro), gostaria de que quando fossem preenchidos os meses do ano de 2018 na Aba "Dados", os títulos na aba "Relatório" alterassem automaticamente,ou seja, de 2017 para 2018, de 2016 para 2017 e de 2015 para 2016 e fizesse a soma acumulada respectiva.

Algum forista poderia dar uma dica.

Segue a planilha com o código.

Grato pela atenção.

 
Postado : 16/12/2017 8:03 am
(@klarc28)
Posts: 971
Prominent Member
 

O código foi corrigido abaixo

 
Postado : 16/12/2017 12:45 pm
(@mprudencio)
Posts: 2749
Famed Member
 

Uma tabela dinamica parece que resolve.

Marcelo Prudencio
Microsoft Excel Brasil no Facebook

"Começar já é a metade do caminho."
Autor Desconhecido

Simplifica que simples fica.
Nicole Tomazella.

"O Simples é Sempre Melhor Que o Complicado"
Jorge Paulo Lemann.

 
Postado : 16/12/2017 12:46 pm
(@squat)
Posts: 43
Eminent Member
Topic starter
 

Bom dia Klarc28

Obrigado pelo retorno.

Mas o que estou tentando, é conforme vão sendo lançados os meses e os valores na aba "Dados" a macro puxe o mês mais recente para célula "D1" na aba "Relatório" e calcule a soma acumulada de janeiro até o mês mais atual do respectivo ano, por exemplo:

Quando na aba "Dados" for lançado o mês fev/18 a macro põe essa data na célula "D1" na aba "Relatório", na sequência fique em "C1" o ano de 2017 e em "B1" o ano de 2016.
Com base nisso minha intenção é o loop pegar como valor inicial o mês de janeiro de cada ano e fazer a soma acumulada.

Desculpa se não fui claro, qualquer dúvida é só perguntar.

MPrudêncio, obrigado pelo retorno também, eu pensei em usar tabela dinâmica, mas esse arquivo vai ficar para consulta de outras pessoas, por isso estou tentando via macro.

Grato pela atenção.

 
Postado : 17/12/2017 10:22 am
(@klarc28)
Posts: 971
Prominent Member
 

O código foi corrigido abaixo

 
Postado : 17/12/2017 10:38 am
(@squat)
Posts: 43
Eminent Member
Topic starter
 

Bom noite Klarc28,

Obrigado pelo questão da data.

O que está faltando é somar o acumulado mês a mês conforme o ano em "B1", "C1" e D1" na aba "Relatório", isso que eu ainda não consegui.

Vou deixar em aberto para se alguém pode me dar uma luz.

 
Postado : 17/12/2017 4:45 pm
(@klarc28)
Posts: 971
Prominent Member
 

Código corrigido abaixo

 
Postado : 17/12/2017 5:11 pm
(@klarc28)
Posts: 971
Prominent Member
 

Alterei o código. Favor verificar o arquivo anexo.

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
    
    Dim linha As Long
    
    linha = 3
    
    While ThisWorkbook.Sheets("Dados").Range("A" & linha).Value <> ""
        
        linha = linha + 1
    Wend
    
    ThisWorkbook.Sheets("Relatorio").Range("D1").Value = CDate(ThisWorkbook.Sheets("Dados").Range("A" & linha - 1).Value)
    ThisWorkbook.Sheets("Relatorio").Range("C1").Value = CDate(ThisWorkbook.Sheets("Dados").Range("A" & linha - 13).Value)
    ThisWorkbook.Sheets("Relatorio").Range("B1").Value = CDate(ThisWorkbook.Sheets("Dados").Range("A" & linha - 25).Value)
    Call teste
End Sub

Sub teste()
    
    Dim intervalo As Range
    
    Set intervalo = ThisWorkbook.Sheets("Relatorio").Range("B2:D13")
    intervalo.ClearContents
    Dim linha, linha2 As Long
    
    Dim soma As Double
    Dim linha3 As Integer
    Dim col As Integer
    
    For col = 2 To 4
        linha2 = 2
        linha = 3
        soma = 0
        While ThisWorkbook.Sheets("Dados").Range("A" & linha).Value <> ""
            If Year(ThisWorkbook.Sheets("Dados").Cells(linha, 1).Value) = Year(ThisWorkbook.Sheets("Relatorio").Cells(1, col).Value) Then
                While ThisWorkbook.Sheets("Relatorio").Cells(linha2, col).Value <> ""
                    
                    linha2 = linha2 + 1
                Wend
                If linha2 = 2 Then
                    soma = ThisWorkbook.Sheets("Dados").Cells(linha, 2).Value + ThisWorkbook.Sheets("Dados").Cells(linha, 3).Value
                    ThisWorkbook.Sheets("Relatorio").Cells(linha2, col).Value = soma
                Else
                    soma = soma + ThisWorkbook.Sheets("Dados").Cells(linha, 2).Value + ThisWorkbook.Sheets("Dados").Cells(linha, 3).Value
                    ThisWorkbook.Sheets("Relatorio").Cells(linha2, col).Value = soma
                    
                End If
            End If
            
            linha = linha + 1
        Wend
        
    Next col
    
End Sub
 
Postado : 17/12/2017 5:12 pm
(@squat)
Posts: 43
Eminent Member
Topic starter
 

Blz Klarc28,

Obrigado pelo retorno!

Está quase lá, seu código está somando mês a mês, mas estou querendo somar acumulado, por exemplo:

jan/15 a soma = 489,78 então em fev/15 a soma acumulada teria que ser o valor de jan/15 + a soma de fev/15, ficando assim 489,78 + 1448,58 = 1.938,36 (resultado em "B3" na aba "Relatório") e assim sucessivamente para os meses seguintes.

Grato pela atenção.

 
Postado : 17/12/2017 5:38 pm
(@klarc28)
Posts: 971
Prominent Member
 

Favor baixar o arquivo novamente, pois foi alterado.

 
Postado : 17/12/2017 8:52 pm
(@squat)
Posts: 43
Eminent Member
Topic starter
 

Bom dia Klarc28,

Baixei o arquivo que você postou (Dom Dez 17, 2017 7:12 pm) e a macro está rodando perfeitamente.

Você postou outro arquivo (Dom Dez 17, 2017 10:52 pm) mas não está anexado na mensagem, você mudou algo no código?

 
Postado : 18/12/2017 6:39 am
(@klarc28)
Posts: 971
Prominent Member
 

Se o código resolveu o problema, favor marcar o tópico como resolvido.

 
Postado : 18/12/2017 6:50 am