Página 1 de 1

Soma dos 10 últimas células a partir da última cel vázia

Enviado: 11 Jun 2018 às 15:35
por AMORIM123
Olá, boa tarde galera.

Alguém poderia dar uma força no seguinte cód.:

Preciso realizar uma soma dos 10 último valores a partir de "UltCel"...

Código: Selecionar todos
UltCel = Sheets("Comum").Cells(Sheets("Comum").Rows.Count, 2).End(xlUp).Row

Essa coluna será alimentada por um formulário, porém preciso pegar sempre o totalizador deste intervalo (range).


Muito obrigado!

Re: Soma dos 10 últimas células a partir da última cel vázia

Enviado: 11 Jun 2018 às 19:31
por osvaldomp
Experimente:
Código: Selecionar todos
Sub SomaÚltimasDez()
 Dim UltCel  As Long
  With Sheets("Comum")
   UltCel = .Cells(Rows.Count, 2).End(3).Row
   .Cells(UltCel + 1, 2).Formula = "=SUM(" & Range(Cells(UltCel - 9, 2), Cells(UltCel, 2)).Address & ")"
   '.Cells(UltCel + 1, 2).Value = .Cells(UltCel + 1, 2).Value
  End With
End Sub

Re: Soma dos 10 últimas células a partir da última cel vázia

Enviado: 12 Jun 2018 às 07:51
por FelipeMGarcia
Amigo,

Eu fiz por fórmulas, veja se ajuda.

Abs

Soma dos 10 últimas células a partir da última cel vázia

Enviado: 12 Jun 2018 às 08:45
por AMORIM123
Osvaldo, muito obrigado!

havia conseguido também! Ficou assim:
Código: Selecionar todos
For i = UltCel To UltCel - 9 Step -1
        total = total + CDbl(Range("B" & i).Value)
    Next
Porém, só funciona se tiver 10linhas preenchidas...mas, gostaria que isso fosse manipulado para havendo valor menor ele me traga essa soma..

Tipo uma soma com limite partindo da última célula com preenchimento até o limite de 10 células anteriores à ultima cel preenchida.

Soma dos 10 últimas células a partir da última cel vázia

Enviado: 12 Jun 2018 às 08:46
por AMORIM123
Felipe... muito obrigado pelo tempo... mas preciso da solução em vb mesmo :roll:

Re: Soma dos 10 últimas células a partir da última cel vázia

Enviado: 12 Jun 2018 às 09:17
por osvaldomp
AMORIM123 escreveu: ... só funciona se tiver 10linhas preenchidas...mas, gostaria que isso fosse manipulado para havendo valor menor ele me traga essa soma..
Código: Selecionar todos
Sub SomaÚltimasAtéDez()
 Dim UltCel  As Long
  With Sheets("Comum")
   UltCel = .Cells(Rows.Count, 2).End(3).Row
    If UltCel < 10 Then
     .Cells(UltCel + 1, 2).Formula = "=SUM(" & Range("B1", Cells(UltCel, 2)).Address & ")"
    Else: .Cells(UltCel + 1, 2).Formula = "=SUM(" & Range(Cells(UltCel - 9, 2), Cells(UltCel, 2)).Address & ")"
     '.Cells(UltCel + 1, 2).Value = .Cells(UltCel + 1, 2).Value
    End If
  End With
End Sub


Soma dos 10 últimas células a partir da última cel vázia

Enviado: 12 Jun 2018 às 13:37
por AMORIM123
Deixei assim:
Código: Selecionar todos
With wshComum

    UltCel = .Cells(.Rows.Count, 2).End(xlUp).Row
    'soma as 12 ultimas linhas ou quantidade menor que doze
    For i = UltCel To UltCel - 10 Step -1
        If i > 1 Then
            total = total + CDbl(Range("C" & i).Value)
        Else
            Exit For
        End If
    Next
        
'

End With
Muito Obrigado Osvaldo pelo tempo e atenção!