Notifications
Clear all

FUNÇÃO SUMIFS VBA

5 Posts
3 Usuários
0 Reactions
2,121 Visualizações
(@jalmeida)
Posts: 43
Trusted Member
Topic starter
 

Prezados,

Gostaria de uma ajuda com a função SomaSes em VBA (Sumifs) com critério de Data.

Estou com dificuldades quando preciso definir o critério de data para somatizar uma coluna de valores, obedecendo esse critério (>= ou <=). o resultado não é o esperado como no SomaSes do Excel.

Segue exemplo que desenvolvi para auxilio, orientações e sugestões.

Agradeço a colaboração e ajuda.

Josenildo

 
Postado : 28/05/2018 5:29 pm
(@mprudencio)
Posts: 2749
Famed Member
 

Nao tem nenhum codigo na planilha.

Ja pensou em usar formulas ou tabela dinamica?

Marcelo Prudencio
Microsoft Excel Brasil no Facebook

"Começar já é a metade do caminho."
Autor Desconhecido

Simplifica que simples fica.
Nicole Tomazella.

"O Simples é Sempre Melhor Que o Complicado"
Jorge Paulo Lemann.

 
Postado : 28/05/2018 6:30 pm
(@jalmeida)
Posts: 43
Trusted Member
Topic starter
 

Marcelo,
Grato pelo retorno!
Desculpe, acabei colocando a rotina na pasta pessoal de macros ..., agora já está correto.
De qualquer forma, segue abaixo o código que desenvolvi, entretanto, a macro não está obedecendo ao critério de >= às datas.
Com relação a TDinâmica, minha chefe não aceita porque o arquivo deve seguir em formato de tabela original recebida, por isso preciso da rotina com o Sumifs.
Muito grato.
Josenildo

Sub SomaSesComCriterio_Ex01()
    Dim uLin As Long
    Dim Lin As Integer
    Dim w As Worksheet
    uLin = Cells(Rows.Count, 4).End(xlUp).Row
    Set w = Sheets("Avoid")
    w.Select
        For Lin = 2 To uLin
            Cells(Lin, 5) = Application.WorksheetFunction.SumIfs(w.Range("d_Valor"), w.Range("d_Data"), ">=" & Cells(Lin, 4))
        Next Lin
End Sub
 
Postado : 28/05/2018 8:10 pm
EdsonBR
(@edsonbr)
Posts: 1057
Noble Member
 

Josenildo, bom dia!

No critério, use a data no formato americano:

Cells(Lin, 5) = Application.WorksheetFunction.SumIfs(w.Range("d_Valor"), w.Range("d_Data"), ">=" & Format(Cells(Lin, 4), "mm/dd/yyyy"))

 
Postado : 29/05/2018 7:08 am
(@jalmeida)
Posts: 43
Trusted Member
Topic starter
 

Edson,
Muito obrigado! Deu super certo!
Abcs

 
Postado : 29/05/2018 7:38 am