Notifications
Clear all

Soma Acumulada Dinâmica

12 Posts
3 Usuários
0 Reactions
2,733 Visualizações
(@squat)
Posts: 0
New 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: 0
New Member
 

O código foi corrigido abaixo

 
Postado : 16/12/2017 12:45 pm
(@mprudencio)
Posts: 0
New Member
 

Uma tabela dinamica parece que resolve.

 
Postado : 16/12/2017 12:46 pm
(@squat)
Posts: 0
New 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: 0
New Member
 

O código foi corrigido abaixo

 
Postado : 17/12/2017 10:38 am
(@squat)
Posts: 0
New 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: 0
New Member
 

Código corrigido abaixo

 
Postado : 17/12/2017 5:11 pm
(@klarc28)
Posts: 0
New 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: 0
New 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: 0
New Member
 

Favor baixar o arquivo novamente, pois foi alterado.

 
Postado : 17/12/2017 8:52 pm
(@squat)
Posts: 0
New 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: 0
New Member
 

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

 
Postado : 18/12/2017 6:50 am