Ir para o conteúdo
  • Revista PROGRAMAR: Já está disponível a edição #60 da revista programar. Faz já o download aqui!

jmaocubo

[Resolvido] Condição SumIF VBA com mais do que uma condição

Mensagens Recomendadas

jmaocubo

Olá a todos

Como é que eu posso somar com o sumif com mais do que uma condição?

Folha21.Range("E30").Value = WorksheetFunction.SumIf(.Range("L4:L" & r), 5, .Range("M4:M" & r))

Tenho o seguinte código que está a funcionar bem, acontece que quero somar em função do valor "5" e também com o valor "1".

Como modificar o código acima para fazer isso?

Tentei:

Folha21.Range("E30").Value = WorksheetFunction.SumIf(.Range("L4:L" & r), 1, 5, .Range("M4:M" & r))

Mas não resultou

Obrigado

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
paulosemblano

Veja a função usada em uma fórmula:

=SOMASE(A2:A8;"a";B2:B8) + SOMASE(A2:A8;"b";B2:B8)

Portanto, você deve fazer o mesmo no seu código.

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
jmaocubo

bem visto paulo :cheesygrin:

Obrigado

ficou assim:

Folha21.Range("E30").Value = WorksheetFunction.SumIf(.Range("L4:L" & r), 5, .Range("M4:M" & r)) + WorksheetFunction.SumIf(.Range("L4:L" & r), 1, .Range("M4:M" & r))

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
joseA

bem visto paulo :cheesygrin:

Obrigado

ficou assim:

Folha21.Range("E30").Value = WorksheetFunction.SumIf(.Range("L4:L" & r), 5, .Range("M4:M" & r)) + WorksheetFunction.SumIf(.Range("L4:L" & r), 1, .Range("M4:M" & r))

😲

Poderias mostrar o arquivo, tentei reproduzir aqui e não conseguí.

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
jmaocubo

😲

Poderias mostrar o arquivo, tentei reproduzir aqui e não conseguí.

Viva José

Olá

Desculpa não ter respondido antes, mas só reparei hoje na tua questão.

O trabalho consistia em somar valores da folha 4 (neste caso) que na coluna L tivessem o código 1, 2, 5, 7 e 9 respectivamente e enviar o somatório associado na coluna M para a folha 21 para as células especificas.

Aqui vai o código:

Sub filtroRecursos()

' Miguel 2010

Dim r As Long


With Folha4

   
    r = .Cells(Rows.Count, 1).End(xlUp).Row
    .Range("M4:M" & r).Formula = "=(G4-C4)*H4"
    
    
     
    
    Folha21.Range("E30").Value = WorksheetFunction.SumIf(.Range("L4:L" & r), 2, .Range("M4:M" & r))
    Folha21.Range("E32").Value = WorksheetFunction.SumIf(.Range("L4:L" & r), 5, .Range("M4:M" & r)) +WorksheetFunction.SumIf(.Range("L4:L" & r), 1, .Range("M4:M" & r))
    Folha21.Range("E34").Value = WorksheetFunction.SumIf(.Range("L4:L" & r), 7, .Range("M4:M" & r))
    Folha21.Range("K11").Value = WorksheetFunction.SumIf(.Range("L4:L" & r), 9, .Range("M4:M" & r))
    
    

    
    
    

End With

End Sub

Enviei o código que estava a utilizar, se tiveres duvidas diz que eu tento criar um exemplo.

Abraço

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites

Crie uma conta ou ligue-se para comentar

Só membros podem comentar

Criar nova conta

Registe para ter uma conta na nossa comunidade. É fácil!

Registar nova conta

Entra

Já tem conta? Inicie sessão aqui.

Entrar Agora

×

Aviso Sobre Cookies

Ao usar este site você aceita os nossos Termos de Uso e Política de Privacidade. Este site usa cookies para disponibilizar funcionalidades personalizadas. Para mais informações visite esta página.