Página 1 de 1

Função ARRENDONDAR dentro de uma Função VBA Personalizada

Enviado: 08 Jul 2016 às 12:53
por lstavares
Pessoal, bom dia! Estou aprendendo VBA e estou com uma dúvida. Eis abaixo a função que estou trabalhando.
Function EasyCompra(valor_compra, quantidade_compra, taxa_liquidação, emolumentos, corretagem)

EasyCompra = (valor_compra * quantidade_compra * taxa_liquidação) + ((valor_compra * quantidade_compra * taxa_liquidação) * emolumentos) + corretagem


End Function

Nesta função gostaria de pegar a parte destacado em vermelho e aplicar nessa a função ARREDONDAR.PARA.BAIXO( ,2)

Basicamente gostaria de que a função escrita no Visual Basic fosse assim:
EasyCompra = (valor_compra * quantidade_compra * taxa_liquidação) + ARREDONDAR.PARA.BAIXO(((valor_compra * quantidade_compra * taxa_liquidação) * emolumentos);2) + corretagem
Porém dessa forma, obviamente, ele dá erro. Poderiam me ajudar a escrever esse código de forma correta?

Re: Função ARRENDONDAR dentro de uma Função VBA Personalizad

Enviado: 08 Jul 2016 às 13:28
por Reinaldo
No VBA os comandos / funções devem ser utilizados em ingles, liguagem nativa do mesmo.
Assim Arredondar = Round
utilizando o padrão pode-se usar VBA.Round
Código: Selecionar todos
EasyCompra = (valor_compra * quantidade_compra * taxa_liquidação) + VBA.Round((valor_compra * quantidade_compra * taxa_liquidação) * emolumentos, 2) + corretagem
Já arredondar para baixo é uma função de planilha, deve-se utilizar worksheetfunciton:
Código: Selecionar todos
EasyCompra = (valor_compra * quantidade_compra * taxa_liquidação) + Application.WorksheetFunction.RoundDown((valor_compra * quantidade_compra * taxa_liquidação) * emolumentos, 2) + corretagem