Ir ao conteúdo
  • Cadastre-se

Excel VBA ( Problema com SOMA)


Netrox92

Posts recomendados

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

Link para o comentário
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

Link para o comentário
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

Link para o comentário
Compartilhar em outros sites

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas comunidades 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

×
×
  • Criar novo...