Notifications
Clear all

SOMAR TEXTBOX AUTOMATICO

8 Posts
3 Usuários
0 Reactions
5,022 Visualizações
(@araujors)
Posts: 79
Estimable Member
Topic starter
 

PESSOAL EU TENHO 10 TEXTBOX E GOSTARIA DE SOMAR AS MESMAS AUTOMÁTICO, CONFORME EU FOSSE LANÇANDO OS VALORES ELES IRIAM APARECENDO NA TEXTBOX 11, SEGUE EXEMPLO ABAIXO, NÃO SÃO VALORES EM REAIS APENAS EM NÚMEROS MESMO. NA COLUNA NP DO ANEXO.

 
Postado : 13/01/2013 11:52 am
(@fernandofernandes)
Posts: 43750
Illustrious Member
 

Boa noite Araujors

Você terá que converter os valores para algum tipo numérico para poder somá-los. Isso pode ser feito usando funções como CINT e CDBL.

TextBox11.Text = CDbl(TextBox1.Text) + CDbl(TextBox2.Text) + CDbl(TextBox3.Text) . . .

Nos textobx sem valores altere a propriedade Value para zero (0). Textbox que fazem cálculos não podem ficar sem valores...

Se usar a procura do fórum encontrará outros tópicos sobre o assunto, como este: viewtopic.php?f=23&t=3665

Se a dica for útil, clique na mãozinha do lado da ferramenta Citar.

Um abraço.

 
Postado : 13/01/2013 4:32 pm
(@robert)
Posts: 561
Honorable Member
 

Araujo, boa noite !

Além da boa dica do nosso colega patropi, sugiro que você anexe uma planilha ficticia, desta forma fica melhor fazer alguns testes.

 
Postado : 13/01/2013 5:42 pm
(@fernandofernandes)
Posts: 43750
Illustrious Member
 

Araujo,

Primeiro não escreva mais em letras maiusculas.

Segundo, utilize a Pesquisa no Forum e encontrara varios tópicos referentes a mesma questão, por exemplo :

somando duas textbox
viewtopic.php?f=23&t=3665

Calculo automático entre textbox [Resolvido]
viewtopic.php?f=10&t=6144

ERRO NA MACRO DE AUTO SOMA EM TEXTBOXES [Resolvido]
viewtopic.php?f=10&t=6756

Estes são só alguns, encontrara varios outros.

[]s

 
Postado : 13/01/2013 8:05 pm
(@fernandofernandes)
Posts: 43750
Illustrious Member
 

Para que a soma seja efetuada em qq situação é preciso que sejam tratados todos os txtbox que compõem a soma.
Então em cada textbox (pode ser em um dos eventos : after_update,before_update,exit,change) é preciso chamar a rotina Calculo
Assim é possivel utilizar (uma possibilidade):

Sub Calculo()
Dim Valor As Double
If TextBox1.Text = "" Then
    txt1 = 0
Else
    txt1 = CDec(TextBox1.Text)
End If
If TextBox2.Text = "" Then
    txt2 = 0
Else
    txt2 = CDec(TextBox2.Text)
End If
If TextBox3.Text = "" Then
    txt3 = 0
Else
    txt3 = CDec(TextBox3.Text)
End If
If TextBox4.Text = "" Then
    txt4 = 0
Else
    txt4 = CDec(TextBox4.Text)
End If
If TextBox5.Text = "" Then
    txt5 = 0
Else
    txt5 = CDec(TextBox5.Text)
End If
If TextBox6.Text = "" Then
    txt6 = 0
Else
    txt6 = CDec(TextBox6.Text)
End If

Valor = 0
Valor = txt1 + txt2 + txt3 + txt4 + txt5 + txt6

TextBoxTotal.Text = Format(Valor, "R$ #.00")
End Sub

Ainda Supondo que suas texbox sejam numeradas sequenciais (TextBox1...2...3...etc)
é possivel simplificar:

    Sub Calculo()
Dim Valor As Double
       Valor = 0
'Para cada controle no formulario 
For Each c In Controls
'Verifica se o controle e TextBox (descarta label/frame/botoes etc..)
        If TypeName(c) = "TextBox" Then
'Descarta se for o txt do total e dados não numericos
            If c.Name <> "textTOTAL" And IsNumeric(c.Text) Then
'Verifica se o digito numerico está dentro do "range" desejado(nesse exemplo somente somará textbox de final menor do que 7)
                If Right(c.Name, 1) < 7 Then
                    Valor = Valor + CDbl(c.Text)
                End If
            End If
        End If
    Next
        textTOTAL.Text = Format(Valor, "R$ #.00")
    End Sub
 
Postado : 16/01/2013 6:13 am
(@araujors)
Posts: 79
Estimable Member
Topic starter
 

Peço desculpas realmente não tinha lido a mensagem sobre letras maiúsculas, e a respeito do tópico repetido é pq eu não consegui fazer a autosoma ainda ta dando erro, mas realmente me desculpe.

 
Postado : 16/01/2013 9:17 pm
(@fernandofernandes)
Posts: 43750
Illustrious Member
 


Araújo,

se ainda não conseguiu obter o resultado esperado, faça como sugerido:

anexe seu arquivo, compactado e com dados fictícios, ou cole seu código aqui para que possamos verificar por que a soma não está sendo realizada em tempo de execução.

 
Postado : 17/01/2013 5:03 am
(@araujors)
Posts: 79
Estimable Member
Topic starter
 

Pessoal ja resolvi meu problema, obrigado a todos, código somar automático.

Private Sub TextBox1_AfterUpdate()
TextBox3.Value = Val(TextBox1.Value) + Val(TextBox2.Value)
End Sub

Private Sub TextBox2_AfterUpdate()
TextBox3.Value = Val(TextBox1.Value) + Val(TextBox2.Value)
End Sub

 
Postado : 26/01/2013 3:23 pm