Este fórum está sendo desativado

Depois de 9 anos, este fórum será desativado. Mas calma.... estamos migrando para uma comunidade no DISCORD. Junte-se a nós.

ENTRAR PARA DISCORD

Tópicos relacionados a códigos VBA, gravação de macros, etc.
  • Avatar do usuário
Por Martins
Posts
#46174
Boa Noite

Estou com problema de sintaxe na minha função SUMIFS. Alguém consegue me ajudar a identificar o erro por favor?
Código: Selecionar todos
Plan1.Range("D1").Value = WorksheetFunction.SumIfs(PLAN1.RANGE("D3:D8"), (plan1.range("C3:C8"),(plan1.range("D1"), (plan1.range("E3:E8"),(PLAN1.RANGE("D"))))))
Você não está autorizado a ver ou baixar esse anexo.
Avatar do usuário
Por Jimmy
Avatar
#46176
Martins,

Se precisa especificar a planilha, tente assim:
Código: Selecionar todos
Set Plan1 = Sheets("Planilha1")
Plan1.Range("F5").Value = WorksheetFunction.SumIfs(Plan1.Range("D3:D8"), Plan1.Range("C3:C8"), Plan1.Range("D1"), Plan1.Range("E3:E8"), "D")
ou se não precisa, assim:
Código: Selecionar todos
Range("F5").Value = WorksheetFunction.SumIfs(Range("D3:D8"), Range("C3:C8"), Range("D1"), Range("E3:E8"), "D")
Você está jogando o resultado disso na célula D1, porém, a D1 está sendo usada como critério do SomaSe.
Seria melhor jogar esse resultado em uma célula diferente, como:
Código: Selecionar todos
Range("F4").Value = WorksheetFunction...
Jimmy San Juan
Por Martins
Posts
#46214
Oi Jimmy.

Excelente explicação.

Quando fui aplicar na prática tive alguns problemas tal como:

Como cada linha tem um critério apliquei uma macro com esta fórmula e depois apliquei um autofill, mas não consegui fazer que o excel entenda que cada linha tem um critério.

Depois apliquei uma outra macro para fazer a contagem por linha, mas também não consegui.

Resumindo, consegues me ajuda por favor? Como sou novo em vba ainda peco em coisas fáceis.
Você não está autorizado a ver ou baixar esse anexo.
Por Martins
Posts
#46332
Oi Senhores.

Será que alguém consegue me ajudar?

Tenho duas macros a macro "somases1" esta calcula corretamente, mas o cálculo acontece na célula "D7" da plan2. Preciso que percorra as linhas abaixo, por exemplo D8 em diante.

A única coisa que muda é o critério1 que será "B7, B8, B9...... da plan2.

Tentei aplicar um autofill, mas não adiantou, então fiz uma outra macro a "somases2" para percorrer as linhas, mas não funcionou.
Você não está autorizado a ver ou baixar esse anexo.
Por osvaldomp
#46335
Veja se ajuda.
Código: Selecionar todos
Sub Teste()
 With Range("D7:D" & Cells(Rows.Count, 2).End(xlUp).Row)
  .Formula = "=SUMIFS(Plan1!D$2:D$9,Plan1!B$2:B$9,B7,Plan1!E$2:E$9,""D"")"
  .Value = .Value
 End With
End Sub
Avatar do usuário
Por Jimmy
Avatar
#46356
Olá Martins,

Em termos de instruções, a macro não tem problemas, mas para saber porque não está dando o resultado esperado, você teria que dizer qual é o resultado esperado. O problema parece simples de resolver, mas preciso saber o que esperas da macro.

Algumas observações:

Você está usado o WorksheetFunction para realizar o SomaSe. Esse comando faz a soma, pega o valor e disponibiliza para a macro jogar numa célula (ou numa variável, ou exibir na tela, etc). A célula recebe o resultado da soma, e não a fórmula que gerou a soma.
Execute os comando abaixo, e compare os resultados em termos de conteúdo da célula:
Range("A1").Value = "=Sum(1,2,3)"
Range("B1").Value = WorksheetFunction.Sum(1, 2, 3)
Me diga se quer colocar na célula o resultado da soma, ou a fórmula SOMASE que fará a soma.

Macro SOMASES1

O critério usado para fazer a soma é fixo: o valor da faixa Plan1"B2:B9" tem que ser igual a Plan2"B7", e o da faixa Plan1"E2:E9" deve ser igual a "D". O resultado é o valor 1000, que vem da Plan1”D2”, e é colocado na Plan1“D7”.

Ao copiar para baixo, como é um valor e não uma fórmula, o valor é repetido.

Macro SOMASES2

O critério usado é o mesmo, o resultado é o também o mesmo (1000(, que vem da Plan1”D2”, e é colocado na Plan1“D7” concatenado com “i”. Para i = 2, o resultado é colocado na célula D72. Quando i = 5, na D75 e assim por diante.

Descreva o que pretende que a macro faça, e ajustamos.

Jimmy San Juan
Por Martins
Posts
#46375
Osvaldo atendeu perfeitamente. Muito obrigado.

Jimmy desculpe se não consegui ser claro. Agradeço seu retorno.
long long title how many chars? lets see 123 ok more? yes 60

We have created lots of YouTube videos just so you can achieve [...]

Another post test yes yes yes or no, maybe ni? :-/

The best flat phpBB theme around. Period. Fine craftmanship and [...]

Do you need a super MOD? Well here it is. chew on this

All you need is right here. Content tag, SEO, listing, Pizza and spaghetti [...]

Lasagna on me this time ok? I got plenty of cash

this should be fantastic. but what about links,images, bbcodes etc etc? [...]

Estamos migrando para uma comunidade no Discord