Notifications
Clear all

Formulas em VBA

7 Posts
2 Usuários
0 Reactions
1,268 Visualizações
(@jonatasjho)
Posts: 25
Eminent Member
Topic starter
 

Prezados,

Minha planilha esta ficando pesada, e demora de carregar, devido o número de formulas.
Gostaria de passar as formulas para o VBA. Sei que é possível, só não estou conseguindo fazer.

As formulas são:
=SE(ÉCÉL.VAZIA(D3); SE(C3-HOJE()<0;"ATRASADA!"; SE(C3-HOJE()<8;"Próximos dias";""));"Recebida")
=SE(D2="";"";PROCV(D2;'C:UserssouzajDesktop[TWG BR IT - Payments 2017 -.xlsx]Payments'!$I:$J;2;))

Existe um porém, por se tratar de várias linhas de códigos, gostaria que essas formulas se repetissem por diversas linhas, sem ter que escrever uma formula para cada linha.

Não sei se a ajuda virá em forma de uma botão, ou de uma atualização automática da planilha.

Desde já agradeço.

 
Postado : 19/12/2017 11:53 am
(@osvaldomp)
Posts: 857
Prominent Member
 

Veja se aproveita.

Sub InsereFórmulasValores()
 Range("A3:A10").FormulaLocal = "=SE(ÉCÉL.VAZIA(D3);SE(C3-HOJE()<0;""ATRASADA!"";SE(C3-HOJE()<8;""Próximos dias"";""""));""Recebida"")"
 Range("A3:A10").Value = Range("A3:A10").Value
 Range("H2:H15").FormulaLocal = "=SE(D2="""";"""";PROCV(D2;'C:UserssouzajDesktop[TWG BR IT - Payments 2017 -.xlsx]Payments'!$I:$J;2;))"
 Range("H2:H15").Value = Range("H2:H15").Value
End Sub

Osvaldo

 
Postado : 19/12/2017 4:00 pm
(@jonatasjho)
Posts: 25
Eminent Member
Topic starter
 

Veja se aproveita.

Sub InsereFórmulasValores()
 Range("A3:A10").FormulaLocal = "=SE(ÉCÉL.VAZIA(D3);SE(C3-HOJE()<0;""ATRASADA!"";SE(C3-HOJE()<8;""Próximos dias"";""""));""Recebida"")"
 Range("A3:A10").Value = Range("A3:A10").Value
 Range("H2:H15").FormulaLocal = "=SE(D2="""";"""";PROCV(D2;'C:UserssouzajDesktop[TWG BR IT - Payments 2017 -.xlsx]Payments'!$I:$J;2;))"
 Range("H2:H15").Value = Range("H2:H15").Value
End Sub

Primeiramente muito obrigado! A do Procv funcionou perfeitamente.
Porém a primeira formula não esta funcionando corretamente de acordo com as datas de uma outra coluna. Estou anexando uma foto da planilha, pois ela em si esta extensa de mais para anexar. Do pouco que eu conheço, acredito que necessite de uma variável declarando o dia de hoje (mas não tenho certeza).

Na coluna "B" esta um exemplo da formula funcionando corretamente. Porém na coluna "E" onde esta o VBA, ele não responde corretamente.

 
Postado : 20/12/2017 5:29 am
(@osvaldomp)
Posts: 857
Prominent Member
 

No código que eu sugeri as fórmulas estão exatamente como você as colocou aqui, então se a segunda não está retornando o resultado correto você precisa primeiro elaborar manualmente e diretamente na célula uma fórmula que retorne o resultado que você quer, e só depois disso inseri-la via macro.

Se você precisa de ajuda para elaborar a fórmula, então eu sugiro que você disponibilize aqui no fórum uma amostra compactada do seu arquivo Excel (veja as regras do fórum para anexar arquivos). Imagens não servem.
Coloque na amostra do arquivo apenas 4 ou 5 linhas com dados, ou coloque todas as variações possíveis de situações, coloque as fórmulas que funcionam corretamente na coluna B e coloque manualmente os resultados desejados na coluna E e explique os critério, tudo na própria planilha.

Osvaldo

 
Postado : 20/12/2017 6:01 am
(@jonatasjho)
Posts: 25
Eminent Member
Topic starter
 

No código que eu sugeri as fórmulas estão exatamente como você as colocou aqui, então se a segunda não está retornando o resultado correto você precisa primeiro elaborar manualmente e diretamente na célula uma fórmula que retorne o resultado que você quer, e só depois disso inseri-la via macro.

Se você precisa de ajuda para elaborar a fórmula, então eu sugiro que você disponibilize aqui no fórum uma amostra compactada do seu arquivo Excel (veja as regras do fórum para anexar arquivos). Imagens não servem.
Coloque na amostra do arquivo apenas 4 ou 5 linhas com dados, ou coloque todas as variações possíveis de situações, coloque as fórmulas que funcionam corretamente na coluna B e coloque manualmente os resultados desejados na coluna E e explique os critério, tudo na própria planilha.

A Coluna "A" está com as formulas funcionando corretamente.
Na coluna "B" as datas de vencimento.
Coluna "D" é onde deveriam aparecer as formulas da coluna "A", só que em VBA.

Fico á disposição.

 
Postado : 20/12/2017 7:55 am
(@osvaldomp)
Posts: 857
Prominent Member
 

Coluna "D" é onde deveriam aparecer as formulas da coluna "A", só que em VBA.

Experimente:

Range("D3:D" & Cells(Rows.Count, 2).End(3).Row).FormulaLocal = "=SE(ÉCÉL.VAZIA(C3);SE(B3-HOJE()<0;""ATRASADA!"";SE(B3-HOJE()<8;""Próximos dias"";""""));""Recebida"")"
Range("D3:D" & Cells(Rows.Count, 2).End(3).Row).Value = Range("D3:D" & Cells(Rows.Count, 2).End(3).Row).Value

sugestão - para responder clique na caixa RESPONDER, abaixo da última postagem, só clique em CITAR se necessário.

Osvaldo

 
Postado : 20/12/2017 8:38 am
(@jonatasjho)
Posts: 25
Eminent Member
Topic starter
 

Coluna "D" é onde deveriam aparecer as formulas da coluna "A", só que em VBA.

Experimente:

Range("D3:D" & Cells(Rows.Count, 2).End(3).Row).FormulaLocal = "=SE(ÉCÉL.VAZIA(C3);SE(B3-HOJE()<0;""ATRASADA!"";SE(B3-HOJE()<8;""Próximos dias"";""""));""Recebida"")"
Range("D3:D" & Cells(Rows.Count, 2).End(3).Row).Value = Range("D3:D" & Cells(Rows.Count, 2).End(3).Row).Value

sugestão - para responder clique na caixa RESPONDER, abaixo da última postagem, só clique em CITAR se necessário.

Funcionou perfeitamente. Muito obrigado Osvaldo.

Já podem fechar o tópico.

 
Postado : 20/12/2017 9:01 am