Jump to content
  • 0
Mário Martinell

[Resolvido] Soma Textbox VBA Excel

Question

Pessoal, bom dia.

 

Estou tentando somar alguns valores com casas decimais que é resultado de cálculo de juros para uma textbox. Consegui fazer conforme abaixo, porém, o resultado não está considerando os valores após a virgula. Por gentileza, alguém poderia me ajudar? Obrigado!

Dim Vl1 As Double
Dim Vl2 As Double
Dim Vl3 As Double
Dim Vl4 As Double
Dim Vl5 As Double
Dim Vl6 As Double
Dim vl7 As Double
Dim vl8 As Double
Dim Soma As Double
Vl1 = val(TextBox46.text)
Vl2 = val(TextBox47.text)
Vl3 = val(TextBox48.text)
Vl4 = val(TextBox49.text)
Vl5 = val(TextBox50.text)
Vl6 = val(TextBox51.text)
vl7 = val(TextBox52.text)
vl8 = val(TextBox53.text)

Soma = Vl1 + Vl2 + Vl3 + Vl4 + Vl5 + Vl6 + vl7 + vl8
TextBox56.Value = Soma

 

Edited by quintelab
Adicionado BBCode

Share this post


Link to post
Share on other sites

3 answers to this question

Recommended Posts

  • 0

O problema está no val:

 

Citar

The VAL function will stop reading the string once it encounters the first non-numeric character. This does not include spaces.

 

Quando encontra a virgula, para por ali. Tente usar CDbl no lugar de val

Share this post


Link to post
Share on other sites
  • 0

Obrigado quintelab....

Deu certo a soma, exceto pq agora está somando o valores sem considerar as pontuações.

 

Dim Soma As Double
Soma = CDbl(TextBox46.text) + CDbl(TextBox47.text) + CDbl(TextBox48.text) + CDbl(TextBox49.text) + CDbl(TextBox50.text) + CDbl(TextBox51.text) + CDbl(TextBox52.text) + CDbl(TextBox53.text)
TextBox56.Value = Soma

 

Tive que converter para decimal americano para o Cdbl funcionar também, mas agora ele soma como se os valores fossem números inteiros.

 

Por exemplo:

 

textbox46 = 248.8

textbox47 =  250.1

total = 498.90

 

o resultado está dando = 4989

 

 

Share this post


Link to post
Share on other sites
  • 0

Obrigado. Deu certo, alterei de Cdbl para CCur e os valores estão sendo somados corretos. Isto sem a necessidade de conversão para decimal americano.

 

Dim Soma As Double
Soma = CCur(TextBox46.text) + CCur(TextBox47.text) + CCur(TextBox48.text) + CCur(TextBox49.text) + CCur(TextBox50.text) + CCur(TextBox51.text) + CCur(TextBox52.text) + CCur(TextBox53.text)
TextBox56.Value = Soma

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

  • Similar Content

    • By marlone
      Preciso fazer uma consulta no banco onde eu pego total gasto por CPF, somando cada row que for do mesmo CPF por exemplo:
       
       
      Cpf    ctro    vlr               vlrtotal
      158   166     1000         5000
      158   156     1000         5000
      158   1644   3000        5000
       
      159   168     2000         6000
      159   154     2000         6000
      159   111     2000         6000
       
      É possível?
    • By Hashira do Vento
      O exercício pede o que eu faça um código com uma matriz, onde eu peça uma linha qualquer ao usuário, e nela será feito a soma ou média dos elementos contidos.
      O problema é na hora da decisão do usuário na hora de escolher entre média ou soma, escrevendo a letra inicial de uma dessa palavras em maiúsculo. O "If" simplesmente não funciona, e eu acho que seja essa minha dificuldade, pois quando tirei o if, a soma funcionou normalmente (com o código atual a soma fica igual a zero no printf final). E sim, eu pesquisei a fundo sobre o tipo char, mas mesmo assim não consegui resposta alguma para a solução do meu problema :/
      Segue o código:
      Obs: Claramente, o meu código não está terminado (ainda falta pôr a parte da média), a partir do momento em que eu solucionar esse problema principal, creio que conseguirei finalizá-lo sem mais contratempos.
       
      #include <stdio.h> #include <stdlib.h> #include <locale> int main (void){ setlocale (LC_ALL, "Portuguese"); float M [2][2], media; int lin, x, soma1, soma2; char op[5]; printf ("Preencha a matriz: \n"); for (int l = 0; l<2; l++) { //linha for (int c = 0; c<2; c++ ) { //coluna scanf ("%f", &M[l][c]); } } printf ("Que operação você quer? S ou M?\n"); //Entrada do char, escolha da operação scanf ("%s", op); printf ("Em qual linha da matriz a operação deve ser realizada?\n"); scanf ("%d", &x); for (int l = x; l==x; l++) { for (int c = 0; c<2; c++ ){ printf ("%f \n", M[l][c]);//só mostrando os numeros da linha (ignore) if (op=="S") //tenho quase certeza que o problema se encontra aqui soma1= M[l][c]+soma1; } } printf ("O resultado da soma deu %d", soma1); //e na hora de mostrar a soma, ela sempre aparece como zero }
    • By gcmapigotto
      Pessoal, tudo bem?
       
      Eu sou designer, sou leigo em PHP e programação em si, meu forte é HTML, CSS etc.
       
      Gostaria de verificar se alguém tem algum modelo simples de uma programação em PHP que diariamente, por exemplo, some um valor a um número especificado, que salve isso em TXT e substitua um número no HTML.
       
      Por exemplo, eu gostaria de lançar o site no ar com um número 6000. Daí no outro dia, automaticamente, quero que apresente o número 6010 até quando chegar no ano de 2020 ele chegue no total de 7000 sozinho. Ou seja, que ele vá somando 10 + 10 por dia.
       
      Alguém teria algo para me ajudar? Eu pesquisei em vários sites, mas são códigos com finalidades diferentes.
       
      Muito obrigado.
    • By Javã JaRLEs
      Olá, boma dia!
      Estou tendo dificuldades em acrescentar mais 1 à variável da tabela no banco de dados
      Tenho a variável $num = 11111111111111111111111. Esse valor será gravado no BD.
      Essa variável têm 23 caracteres e quero somar mais 1. Isso vai ficar em loop.
      O problema é que o sistema está apresentando esse resultado:
      1.1111111111111E+22
      1.1111111111111E+22
      1.1111111111111E+22
       
      O que estou fazendo de errado?
    • By vbnovak
      Pessoal, tudo bem?
       
      Eu infelizmente sou uma pessoa muito newbie no Access, e extremamente enferrujada no VBA, e eu tenho que criar um banco de dados para importar várias planilhas de Mês/Ano (Ex.: 012018; 022018) sempre do mesmo modelo/molde/afins, e no fim, gerar um relatório com as informações importadas. O modelo relatório e o modelo tabela estão prontos, entretanto, não sei como criar o formulário que faça:
       
      1º: Clicar no botão procurar arquivo;
      2º: Solicite o Mes/Ano do arquivo que será importado;
      3º: Abra a API do Windows de localizar arquivo;
      4º: Ao selecionar e importar o arquivo, dê baixa na tabela definida.
       
      A tabela e o arquivo tem todos as mesmas colunas, entretanto, eu inseri a coluna MesAno na tabela que deverá ser inserida conforme a pergunta que foi solicitada no formulário. Pois o relatório será gerado de acordo com essa coluna.
×

Important Information

Ao usar o fórum, você concorda com nossos Terms of Use.