Notifications
Clear all

Ajuda: Campo calculável em form vba Excel

4 Posts
3 Usuários
0 Reactions
958 Visualizações
(@eve13)
Posts: 1
New Member
Topic starter
 

Boa Tarde Pessoal!

Estou com um projeto no excel, utilizando forms do vba (gravando em bd do access) e estou com uma dificuldade:

Em um dos forms, são imputados valores, e gostaria que a soma deste valores fosse calculado e apresentando em outro campo. Porém, gostaria que isso fosse visualizável antes de se gravar os registros.

No exemplo, seria +- assim:

Campo 1: txtQTD_SERVICO - 100

Campo 2: txtQTD_MATERIAL - 50

campo 3: txtQTD_RECIBO - 10

Campo 4: mostrar resultado da soma dos campos 1, 2, 3

Criei uma função, executável através de um botão....Porém, os valores não somam. Eles concatenam no campo 4 todos os resultados, apresentando um valor assim: 1005010.

Alguem pode me ajudar?

Obrigado

Segue a função que estou usando

Function somar()

TextBox1 = Format(Val(txtQTD_SERVICO)) + Format(Val(txtQTD_MATERIAL)) + Format(Val(txtQTD_RECIBO))

End Function

***Comando que chama a função

Private Sub CommandButton1_Click()

Call somar

End Sub

Obrigado

 
Postado : 09/01/2013 11:37 am
(@fernandofernandes)
Posts: 43750
Illustrious Member
 

Não ha necessidade de se utilizar uma função, a soma pode ser efetuada diretamente no evento click do botão, ou no evento after(ou before) update dos campos de valores
Ao utilizar a expressão Format, deve-se informar tb o tipo de formatação experada, a expressão sozinha não produz resultado algum.
Se os valores que estiver somando forem inteiros, pode lutilzar a conversão como Val, porem se tiver decimais(0,12 por exemplo)é melhor utliziar Cdec (eu prefiro)
Então experimente assim:

Private Sub CommandButton1_Click()

TextBox1.Text = Format(CDec(txtQTD_SERVICO.Text) + CDec(txtQTD_MATERIAL.Text) + CDec(txtQTD_RECIBO.Text), "#,##0.00")

End Sub
 
Postado : 09/01/2013 1:17 pm
(@wagner-morel-vidal-nobre)
Posts: 4063
Famed Member
 

ave13,

Além da excelente sugestão do amigo Reinaldo, também pode ser feito assim. Basta utilizar a soma diretamente no evento click do botão:

Private Sub CommandButton1_Click()
    Dim Valor1, Valor2, Valor3, ValorTotal As Long
    
    Valor1 = Val(txtQTD_SERVICO)
    Valor2 = Val(txtQTD_MATERIAL)
    Valor3 = Val(txtQTD_RECIBO)
    ValorTotal = Valor1 + Valor2 + Valor3
    TextBox1 = Str(ValorTotal)
End Sub

 
Postado : 09/01/2013 1:21 pm
(@fernandofernandes)
Posts: 43750
Illustrious Member
 

Boa noite!!

Olá eve13, esse local não é para as postagens referentes a VBA.

Vou mover seu tópico para o local correto!

Att

 
Postado : 09/01/2013 9:30 pm