Página 1 de 1

Por favor, preciso de ajuda para reescrever esta macro, quem se habilita??? Desde já agradeço!!!

Enviado: 22 Fev 2021 às 17:16
por Jorgeross
Sub calculo12()

Application.ScreenUpdating = True
Application.Calculation = xlCalculationManual

Dim linha As Integer
Dim coluna As Integer
Dim coluna2 As Integer
Dim linha2 As Integer
Dim somase As Integer
Dim somase2 As Integer


linha = 2
linha2 = 2
coluna = 1
coluna = 1
'Do Until Cells(linha, 1).Value = ""
While Cells(linha, 1).Value <> ""


'=SOMASE($A$2:b2;A2;$B$2:B2)

somase = WorksheetFunction.SumIf(Range("A:B"), Cells(linha, 1).Value, Range("B:B"))
somase2 = WorksheetFunction.SumIf(Range("A:B"), Cells(linha2, 1).Value, Range("B:B"))



Cells(linha, 3).Value = somase
Cells(linha, 4).Value = somase2

linha = linha + 1
linha2 = linha2 + 1


Application.ScreenUpdating = False
Application.Calculation = xlCalculationAutomatic
'Loop
Wend

End Sub


CONTAS VALOR saldo total saldo sendo acumulado por conta ---> COLUNA QUE EU QUERO QUE RETORNE COM O VBA
caixa 1 12 12 1
caixa 1 12 12 2
caixa 1 12 12 3
caixa 1 12 12 4
caixa 1 12 12 5
caixa 1 12 12 6
bancos 1 3 3 1
caixa 1 12 12 7
caixa 1 12 12 8
caixa 1 12 12 9
caixa 1 12 12 10
caixa 1 12 12 11
caixa 1 12 12 12
bancos 1 3 3 2
bancos 1 3 3 3

Essa seria a fórmula que eu gostaria que funcionasse no VBA WORKSHEETFUNCTION.SUMIF
=SOMASE($A$2:B2;A2;$B$2:B2)

Re: Por favor, preciso de ajuda para reescrever esta macro, quem se habilita??? Desde já agradeço!!!

Enviado: 22 Fev 2021 às 17:50
por osvaldomp
Em F2 da Plan1 a fórmula abaixo retorna o valor acumulado. Arraste a fórmula para baixo. Veja se é esse o resultado desejado.

Se sim, o que exatamente você quer que a macro faça, que coloque a fórmula nas células F2:F16 da Plan1, ou que coloque diretamente os resultados das fórmulas naquelas células ?

Qual a necessidade/conveniência de utilizar macro para isso ?
Código: Selecionar todos
=SOMASE(A$2:A2;A2;C$2:C2)

Re: Por favor, preciso de ajuda para reescrever esta macro, quem se habilita??? Desde já agradeço!!!

Enviado: 22 Fev 2021 às 18:05
por Jorgeross
Então, eu não quero fazer essa conta através de macros diretas e sim da whorksheetfunction.sumif, conforme apresentado no código anexo, isto porque é muito mais rápido pois não pesa a minha planilha, a qual é bem grandinha. Mesmo assim agradeço irmão.

Re: Por favor, preciso de ajuda para reescrever esta macro, quem se habilita??? Desde já agradeço!!!

Enviado: 22 Fev 2021 às 18:11
por Jorgeross
Na verdade, eu preciso saber como consigo fixar uma célula específica dentro de um sumif no vba, para somar em uma coluna alguns intervalos de datas, como se fosse um extrato bancário, fluxo de caixa vertical, enfim, informações relacionadas a assuntos financeiros por períodos específicos. Já vi diversos "posts" mas apenas um retornou um resultado satisfatório, mas não conclusivo. Mais um vez agradeço a atenção.

Re: Por favor, preciso de ajuda para reescrever esta macro, quem se habilita??? Desde já agradeço!!!

Enviado: 22 Fev 2021 às 19:29
por osvaldomp
Jorgeross escreveu: 22 Fev 2021 às 18:11 Na verdade, eu preciso saber como consigo fixar uma célula específica dentro de um sumif no vba, para somar em uma coluna alguns intervalos de datas, ...
Não encontrei nas suas planilhas quaisquer dados que contenham datas, então nem por adivinhação é possível supor o que você quer exatamente.
Se você quiser uma ajuda objetiva, então você precisa disponibilizar uma planilha com alguns dados, com o resultado desejado para cada exemplo e com as necessárias explicações descritas com exatidão na própria planilha. Informe o resultado desejado, o "sumif no vba" poderá ou não ser usado, esqueça-o por agora

O código abaixo insere os resultados em substituição à fórmula que passei antes.
Código: Selecionar todos
Sub InsereSomaCumulativa()
 Dim LR As Long
  LR = Sheets("Plan1").Cells(Rows.Count, 1).End(3).Row
  With Sheets("Plan1").Range("F2:F" & LR)
   .Formula = "=SUMIF(A$2:A2,A2,C$2:C2)"
   .Value = .Value
  End With
End Sub

Re: Por favor, preciso de ajuda para reescrever esta macro, quem se habilita??? Desde já agradeço!!!

Enviado: 24 Fev 2021 às 16:21
por Jorgeross
Não encontrei nas suas planilhas quaisquer dados que contenham datas, então nem por adivinhação é possível supor o que você quer exatamente.
Se você quiser uma ajuda objetiva, então você precisa disponibilizar uma planilha com alguns dados, com o resultado desejado para cada exemplo e com as necessárias explicações descritas com exatidão na própria planilha. Informe o resultado desejado, o "sumif no vba" poderá ou não ser usado, esqueça-o por agora

O código abaixo insere os resultados em substituição à fórmula que passei antes.
Código: Selecionar todos
Sub InsereSomaCumulativa()
 Dim LR As Long
  LR = Sheets("Plan1").Cells(Rows.Count, 1).End(3).Row
  With Sheets("Plan1").Range("F2:F" & LR)
   .Formula = "=SUMIF(A$2:A2,A2,C$2:C2)"
   .Value = .Value
  End With
End Sub
[/quote]

Obrigado, já adivinhei uma forma aqui e deu tudo certo. Valeu!!!