Notifications
Clear all

SOMASE com VBA

9 Posts
3 Usuários
0 Reactions
2,125 Visualizações
(@bilokas)
Posts: 168
Reputable Member
Topic starter
 

Amigos, segue o seguinte código:

Soma = Application.WorksheetFunction.SumIf(Sheets("dados").Range("M:M").Value, "=2015", Sheets("dados").Range("K:K").Value)

A condição é a seguinte:

Se na coluna M tiver a informação "2015", somar o respectivo valor da linha na coluna K, somando assim todasas linhas que tiverem "2015" como referência e guarar na variável Soma

Não estou conseguindo fazer isso de jeito nenhum, não sei o que há de errado no código acima.

 
Postado : 04/02/2015 9:46 am
(@fernandofernandes)
Posts: 43750
Illustrious Member
 

Boa tarde!!

Já tentou mudar

 "=2015"

para

 "="&2015"

não testado!!

att

 
Postado : 04/02/2015 9:48 am
(@gtsalikis)
Posts: 2373
Noble Member
 

Se fosse no Excel, seria assim:

=SumIf('dados!'."M:M", 2015, 'dados!'K:K)

Então, creio que no VBA seria:

Soma = Application.WorksheetFunction.SumIf(Sheets("dados").Range("M:M").Value, 2015, Sheets("dados").Range("K:K").Value)

Ou:

Soma = Application.WorksheetFunction.SumIf(Sheets("dados").Range("M:M").Value, "2015", Sheets("dados").Range("K:K").Value)

 
Postado : 04/02/2015 11:15 am
(@bilokas)
Posts: 168
Reputable Member
Topic starter
 

Obrigado por responderem amigos,

Em ambas as sugestões, está dando Erro 424 - O objeto é obrigatório.

 
Postado : 04/02/2015 11:22 am
(@gtsalikis)
Posts: 2373
Noble Member
 

Sem a planilha, creio que vai ser difícil dizer.

O nome da planilha "dados" está certo? Vc declarou a variável "soma" as double?

 
Postado : 04/02/2015 11:32 am
(@bilokas)
Posts: 168
Reputable Member
Topic starter
 

Então, isso pelo que eu vi, fiz sim.

no frmCadastro, no evento change do cbo_FonteDaVerba.

 
Postado : 04/02/2015 11:37 am
(@fernandofernandes)
Posts: 43750
Illustrious Member
 

Boa tarde!!

Tente assim:

 Soma = WorksheetFunction.SumIf(Sheets("dados").Range("M:M"), "2015", Sheets("dados").Range("K:K"))

Att

 
Postado : 04/02/2015 12:11 pm
(@gtsalikis)
Posts: 2373
Noble Member
 

Eu usei assim e deu certo:

Soma = Application.WorksheetFunction.SumIf(Sheets("dados").Range("B:B"), 2015, Sheets("dados").Range("K:K"))

Porém, troquei o range de M:M para B:B porque na coluna M não tem anos, tem meses.

Talvez vc estivesse se referindo à coluna L e não à M.

 
Postado : 04/02/2015 12:13 pm
(@bilokas)
Posts: 168
Reputable Member
Topic starter
 

Caramba! Que falha, realmente era a coluna errada mesmo, o certo era a L

Fiquei tão preocupado achando que era outra coisa que não dei atenção para as colunas.

Problema resolvido gente, muito obrigado!

 
Postado : 04/02/2015 12:18 pm