Notifications
Clear all

Função ARRED no Vba

4 Posts
2 Usuários
0 Reactions
1,100 Visualizações
(@rebecapfc)
Posts: 0
New Member
Topic starter
 

Olá galera, tudo bem?
Gostaria de um auxílio numa macro que estou tentando rodar.
Basicamento o conceito é simples, devo copiar uma mesma fórmula para diversas linhas com intervalo variavel, e por isso criei uma variável -linha- para que o usuário digite o número correspondente a linha inicial.
Porém ao tentar preencher com a fórmula ARRED dá pau.

A fórmula base é a seguinte:
=+ARRED(E8* ((F8*H8) + (G8*I8));2)

Minha adaptação em VBA:
'ActiveCell.Formula = "=ROUNDUP(e" & linha & " * ((f" & linha & " * h" & linha & ")+(g" & linha & " * i" & linha & "));2)"

Alguém consegue enxergar o erro, nunca trabalhei com essa fórmula em VBA e está dificil ver onde está a falha.
Muito obrigada a todos!

 
Postado : 15/10/2014 9:18 am
(@gtsalikis)
Posts: 2373
Noble Member
 

Como vc está chamando a fórmula em inglês, a sintaxe tem que ser em inglês, logo, altere o ponto e vírgula para apenas vírgula:

vc fez assim:
ActiveCell.Formula = "=ROUNDUP(e" & linha & " * ((f" & linha & " * h" & linha & ")+(g" & linha & " * i" & linha & "));2)"

Mas deve ser assim:
ActiveCell.Formula = "=ROUNDUP(e" & linha & " * ((f" & linha & " * h" & linha & ")+(g" & linha & " * i" & linha & ")),2)"

Porém, ali vc está usando a função ARREDONDAR.PARA.CIMA(), a função ARRED() em inglês é ROUND()

Outra opção seria usar a fórmula em português mesmo:

ActiveCell.FormulaLocal = "=ARRED(e" & linha & " * ((f" & linha & " * h" & linha & ")+(g" & linha & " * i" & linha & "));2)"

Abs

 
Postado : 15/10/2014 10:13 am
(@rebecapfc)
Posts: 0
New Member
Topic starter
 

Rodou perfeitamente!
Incrível como um ponto faz toda diferença.
Valeu pela dica!
Abs

 
Postado : 15/10/2014 11:11 am
(@gtsalikis)
Posts: 2373
Noble Member
 

Já que ajudou, por favor, clique na mãozinha como agradecimento.

 
Postado : 15/10/2014 11:40 am