Notifications
Clear all

Código vba para arredondar o valor de uma célula

7 Posts
2 Usuários
0 Reactions
1,360 Visualizações
mdosmagos
(@mdosmagos)
Posts: 78
Trusted Member
Topic starter
 

Bom dia!

Pesquisei e não encontrei, eu preciso de um código que arredonde o valor de uma célula da seguinte forma:

se o valor for 14,1, arredonde para 14,0
se o valor for 14,3, arredonde para 14,5
se o valor for 14,6, arredonde para 14,5
se o valor for 14,8, arredonde para 15,0

queria saber se é possível e como fazer....

Desde já grato,

 
Postado : 23/04/2014 6:08 am
(@gtsalikis)
Posts: 2373
Noble Member
 

tente assim:

Sub Arredondar_GT()

Dim sua_célula      As Double
Dim intermediário   As Double

intermediário = Round(sua_célula - Int(sua_célula), 1)

sua_célula = sua_célula + 0.5 - intermediário

End Sub

Lembre-se de AGRADECER aos que te ajudaram, e de marcar o tópico como [Resolvido]
Gente que cuida de gente.

Gilmar

 
Postado : 23/04/2014 6:25 am
mdosmagos
(@mdosmagos)
Posts: 78
Trusted Member
Topic starter
 

Não consegui aplicar....

Digamos que a célula que preciso arredondar é a Q13, o valor que está nela é 14,1, após aplicar o código o valor da célula deve alterar para 14,0, como devo fazer o código?

 
Postado : 23/04/2014 6:43 am
(@gtsalikis)
Posts: 2373
Noble Member
 

inclua essas linhas:

sua_célula = Range("Q13").value

Range("Q13").value = sua_célula

ficando assim:

Sub Arredondar_GT()

Dim sua_célula      As Double
Dim intermediário   As Double

sua_célula = Range("Q13").value

intermediário = Round(sua_célula - Int(sua_célula), 1)

sua_célula = sua_célula + 0.5 - intermediário

Range("Q13").value = sua_célula

End Sub

Porém, eu coloquei apenas o código. Caso precise de ajuda para aplicar, poste o modelo da tua planilha com o que vc quer fazer

Lembre-se de AGRADECER aos que te ajudaram, e de marcar o tópico como [Resolvido]
Gente que cuida de gente.

Gilmar

 
Postado : 23/04/2014 6:47 am
mdosmagos
(@mdosmagos)
Posts: 78
Trusted Member
Topic starter
 

Consegui aplicar, eu estava no caminho certo, mas errei em um detalhe.
Mas esse código arredonda tudo para 0,5, digamos, se o valor da célula é 14,0 ele fica 14,5, eu precisava que fosse assim:
se o valor for 14,0, fique em 14,0
se o valor for 14,1, arredonde para 14,0
se o valor for 14,3, arredonde para 14,5
se o valor for 14,6, arredonde para 14,5
se o valor for 14,8, arredonde para 15,0
se o valor for 15,0, fique em 15,0

 
Postado : 23/04/2014 6:55 am
(@gtsalikis)
Posts: 2373
Noble Member
 

Uma sugestão com fórmulas (a pedido por MP):

=SE(MOD(A1;0,5)>0,2;A1+0,5-MOD(A1;0,5);A1-MOD(A1;0,5))

Lembre-se de AGRADECER aos que te ajudaram, e de marcar o tópico como [Resolvido]
Gente que cuida de gente.

Gilmar

 
Postado : 23/04/2014 1:24 pm
mdosmagos
(@mdosmagos)
Posts: 78
Trusted Member
Topic starter
 

Conforme conversamos por MP, essa seria uma boa solução, então, muito obrigado pela ajuda, mesclarei a fórmula com o código.

Muito obrigado....

 
Postado : 23/04/2014 1:42 pm