Ir ao conteúdo
  • Cadastre-se
Netrox92

Excel VBA ( Problema com SOMA)

Recommended Posts

Bom dia,

 

Estou com um problema e acredito que seja de fácil solução.

 

 

É uma formula simples, que verifica se a SOMA de 2 valores resultam em um resultado especifico.

Sub Teste_soma()Dim Soma As DoubleDim Aux_1 As DoubleDim Aux_2 As DoubleAux_1 = Range("C1").ValueAux_2 = Range("E1").ValueSoma = Range("G1").ValueIf Aux_1 + Aux_2 = Soma Then    MsgBox ("Soma Correta")Else    MsgBox ("Soma Incorreta")End IfEnd Sub

Essa formula funciona QUASE sempre, porém quando eu coloco os seguintes números por exemplo, ela não funciona:

 

Exemplo:

Aux_1 = 5469,30

Aux_2 = 631,10

Soma = 6100,40

 

Se somar o Aux_1 com o Aux_2, o resultado é a Soma, porém ele fala que a soma está incorreta

 

 

 

 

OBS: Eu fiz um teste que talvez ajude na solução. (Eu tirei 10 centavos do Aux_1 e coloquei no Aux_2)

Se colocar os novos valores, ele funciona:

Aux_1 = 5469,20

Aux_2 = 631,20

Soma = 6100,40

 

 

 

Segue a planilha para melhor compreensão:

 

http://www.4shared.com/file/V29TqJ9Uba/Soma.html?

 

 

Obrigado pela atenção

Abraços

Compartilhar este post


Link para o post
Compartilhar em outros sites

experimente mudar o tipo das variáveis de Double para Single:

Dim Soma As SingleDim Aux_1 As SingleDim Aux_2 As Single

para saber mais, no editor de VBA, coloque o cursor sobre o nome da variável e tecle F1

  • Curtir 1

Compartilhar este post


Link para o post
Compartilhar em outros sites

Boa tarde,

 

Eu descobri uma solução, porém permaneço com a dúvida.  :confused:

 

A solução que eu encontrei foi a seguinte:         (espero que ajude quem tem a mesma duvida)

 

Eu apenas alterei o tipo da variavel:

de Double para Currency

 

Eu olhei em alguns sites para saber a diferença entre os dois, e encontrei o seguinte:

  • Double: podem assumir valores de -1,79E308 até -4,94E-324 (negativos) e de 4,94E-324 até 1,79E308 (positivos).
  • Currency: podem assumir valores entre -923.337.203.685.447,5808 e 922.337.203.685.447,5807. É útil para cálculos que envolvem dinheiro e cálculos com precisão até a quarta casa decimal.

 

Alguem saberia me explicar melhor essa diferença???

Eu pensava que o tipo Double era a melhor escolha para números não estão altos, pois acredito que o Currency ocupa mais espaço na memória

 

Se alguem souber me explicar agradeço!

 

Abraços

 

 

 

//=======================================

// Editado

//=======================================

Obrigado pela resposta osvaldomp

 

Eu tinha encontrado uma solução parecida e postei quase ao mesmo tempo que a sua resposta. :D

 

Você saberia responder a minha dúvida?

 

Obrigado de novo

 

Abraços

Compartilhar este post


Link para o post
Compartilhar em outros sites

Crie uma conta ou entre para comentar

Você precisar ser um membro para fazer um comentário

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!

Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.

Entrar agora





Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas publicações sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×