Notifications
Clear all

Como somar um intervalo de valores em VBA?

4 Posts
3 Usuários
0 Reactions
5,178 Visualizações
(@wolneypk)
Posts: 188
Reputable Member
Topic starter
 

Boa Tarde Amigos.

Existe alguma função em vba que substitua o "SOMA" do Excel?
Preciso somar um intervalo de valores e a última célula desse intervalo, irá variar.

Seria algo do tipo:

WorksheetFunction.SOMA("A1:A" & ultma_celula)

Á grosso modo seria isso...
Alguém sabe se existe uma função que soma intervalos em VBa?
Fiz diversas pesquisas aqui e pela Net e não encontrei nada

Um forte abraço a todos!

 
Postado : 25/12/2013 9:06 am
(@gtsalikis)
Posts: 2373
Noble Member
 

Boa tarde,

É complicado dizer que não exista, embora, considerando que vc usou o Google, e que, como alguns dizem "Se não está na primeira página do Google, não existe"... rsrs :lol: :lol:

Posso até estar falando besteira, mas...

A lógica de uma soma é que é necessário passar, obrigatoriamente, por todos os valores, adicionando-os ao total. No caso da função SOMA, creio que ela já deve ter esse código interno, o que eu faria em VBA assim:

For Each Celula In Range("A1:A" & ultma_celula)
    Soma = Soma + Celula.Value
Next

Sendo que, pelo pouco que sei de VBA, ele não vai trabalhar diretamente com um range, se você não disser que é preciso "caminhar" dentro desse range. Por isso o código acima.

A partir disso, daria pra ser um pouco mais específico, o que seria um SOMA.SE ou um simples tratamento de erro, como em:

For Each Celula In Range("A1:A" & ultma_celula)
    If IsNumeric(Celula.Value) Then Soma = Soma + Celula.Value
Next
 
Postado : 25/12/2013 10:31 am
(@fernandofernandes)
Posts: 43750
Illustrious Member
 

Bom dia,

usa isso:

Application.WorksheetFunction.Sum(Worksheets("NOME DA PLANILHA").Range("A1:A" & ultma_celula))

Qualquer coisa da o grito.
Abraço

 
Postado : 25/12/2013 10:01 pm
(@wolneypk)
Posts: 188
Reputable Member
Topic starter
 

Bom dia,

usa isso:

Application.WorksheetFunction.Sum(Worksheets("NOME DA PLANILHA").Range("A1:A" & ultma_celula))

Qualquer coisa da o grito.
Abraço

Muito Obrigado Bernardo!
Era exatamente isso!

Um forte abraço!

 
Postado : 27/12/2013 1:57 pm