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 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.
    • By Daniel Talian
      Gostaria de agradecer a ajuda desde já!
       
      Estou com a seguinte dificuldade, estou gerando uma matriz aleatoriamente, na hora de mostrar os números gerados gostaria de fazer uma operação aritmética (soma), e mostrar somente os 8 números que fechem o resultado dessa soma, no exemplo estou procurando o resultado 500
       
      #include <stdlib.h>
      #include <time.h>
      #define N 1000
      #define L 8
      #define F 100

      int main (){
          int freq[F]; 
          int jogo[N][L], jogo1[N][L], i, j, k, aux, soma, somacont;
          char ja_consta;
          for (i=0; i<F; i++)
              freq = 0;
          srand (time(NULL));
          
          for (i=0; i<N; i++){ 
              for (j=0; j<L; j++){
                  do{
                      jogo[j] = rand() % F + 1; 
                      ja_consta = 'N';
                      for (k=0; k<j; k++) 
                          if (jogo[j] == jogo[k])
                              ja_consta = 'S';
                  }while (ja_consta == 'S'); 
                  jogo1[j] = jogo[j]; 
                  freq[jogo[j]-1]++; 
              }
          }
          printf("Jogos sorteados\n"); \\AQUI EM VEZ DE MOSTRAR TUDO, GOSTARIA DE REALIZAR A SOMA E MOSTRAR SOMENTE OS QUE BATEM COM OS 500
          somacont=0;
          for(i=0;i<N;i++){ 
              soma=0;
              printf("Jogo %d:    ", i+1);
              for(j=0;j<L;j++){
                  soma += jogo[j]; 
             printf("%d ", jogo[j]);
                  if(soma == 500){
                      printf(" Soma: %d ", soma);
                      printf("%d ", jogo[j]); //AQUI ESTA IMPRIMINDO SOMENTE O ULTIMO NUMERO DA LINHA,E NÃO TODA LINHA
                      somacont++;
                      }       
                  }printf("\n");        
              }
          printf("\n");
          printf("Vezes que a media Saiu:%d ", somacont);
          printf("\n");
          
          return 0;
      }
    • By AnotherSunset
      Boa noite/dia gente. Preciso de ajuda aqui. Tenho um exercício no qual tenho de fazer um programa em pascal com o seguinte enunciado:
      Considere a soma S dos termo da série infinita apresentada abaixo:

      Fazer um programa em Free Pascal que calcule o valor aproximado da soma S dos termos da série até o momento em que a diferença das normas (módulo) de 2 termos consecutivos for menor que 0,000001 ({i.e.}, norma da diferença das normas de dois termos consecutivos).
       
      Segue meu algoritmos/programa:
       
      program calcserie;
      var
         soma, a1, a2, an  : real;
         sinal                : longint;
         cont, n, fat         : integer;
      begin
         n := 0;
         a1 := 1;
         a2 := 0;
         soma := 0;
         cont := 1;
         fat := 1;
         an := 1;
         sinal := 1;
         while (an) > 0.000001 do
            begin
            n := n + 2;
              while cont <= n do
                  begin
                  fat := fat * cont;
                  cont := cont + 1;
              end;
           soma := (soma + (a1 * sinal));
           sinal := sinal * -1;
           a2 := a1;
           a1 := ((1/fat));
              if (a2 < 0) then
              an := (a2 * -1) - a1
              else if (a1 < 0) then
              an := (a2) - (a1 * -1);
              end;
         write (soma:0:15);
      end.
       
      Meu erro está sendo a partir da 3 casa decimal

    • By JhonataMS
      Prezados,
      boa noite!

      Me ajudem, por favor.
      Tenho que lançar diversos dados em uma página da receita federal.
      nesta página, há formulários que devem ser preenchidos de acordo com o que se pede.
      São 3 páginas, e nelas são solicitados dados distintas uma das outras.
      tenho uma planilha no Excel, onde consta todos esses dados, totalmente organizados.

      Eu faço um trabalho de quase 3 horas só para copiar estes dados da planilha do excel (CTRL + C) e enviar para estes formularios (CTRL+V).
      (São diversos clientes, cada cliente tem x operações, cada operação tem que ser lançada nessa página, gerando diversos lançamentos no dia a dia).

      Vocês podem me ajudar a criar um macro para automatizar isso?
      Eu já vi um na internet, que entra no site dos correios, faz uma consulta e dentro dessa consulta, ele resgata alguns dados e lança na planilha do excel.
      mas não consegui adapta-lo do modo que eu quero.. pois não entendi como funciona o código.
      não quero lançar nada do navegador para o excel, e sim do excel para o navegador.
      assim como também, ele deve apertar em botões na página. (avançar, para trocar de página).

      eu posso pagar , como posso agradecer.
      =)
       
×

Important Information

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