Jump to content
Sign in to follow this  
williamjda

Somando Valores entre Textbox

Recommended Posts

williamjda

Olá amigo;

Tenho três textbox em meu formulário e gostaria de saber como faço para que os valores contidos nestas 3 textbox fossem somados em uma quarta textbox sendo o valor total. Criei o seguinte código abaixo porem não funcionou.

OBS: Não sei se faz diferenças mas nas três Textbox tem um código para preencher os campos com zero quando eles não forem totalmente preenchidos pelos caracteres.

Tentei usar alguns exemplos ja utilizados no forum porem não deu certo. a formula abaixo não dá erro porem não funciona.

Private Sub ValorTotalPDTextBox_TextChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles ValorTotalPDTextBox.TextChanged
        ValorTotalPDTextBox.Text = Val(QuantidadePDL1TextBox.Text) + Val(QuantidadePDL2TextBox.Text) + Val(QuantidadePDL3TextBox)
    End Sub

Sem mais;

Williamjda

Share this post


Link to post
Share on other sites
Caça
ValorTotalPDTextBox.Text = CDbl(QuantidadePDL1TextBox.Text) +CDbl(QuantidadePDL2TextBox.Text) + CDbl(QuantidadePDL3TextBox.Text)


Pedro Martins

Não respondo a duvidas por PM

Share this post


Link to post
Share on other sites
williamjda

Amigo o código não deu erro porem não funcionou. eu coloco os valores no campo 1 2 e 3 e no campo 4 que deveria aparecer a resposta automaticamente fica em branco.

Share this post


Link to post
Share on other sites
Caça

Não não deveria, porque tens de executar o código em todas as textbox, caso contrario se não mexeres na "ValorTotalPDTextBox" o valor não se altera


Pedro Martins

Não respondo a duvidas por PM

Share this post


Link to post
Share on other sites
williamjda

Agora ele esta a dar o seguinte erro:

Conversion from string "" to type 'Double' is not valid (ASSIM QUE CLICO NO CAMPO PARA DIGITAR).

Share this post


Link to post
Share on other sites
Caça

Claro, a textbox deveria estar a 0 e mesmo assim deverias utilizar o evento Leave, e, antes de executar o código, verificar se todas as textbox estão preenchidas, isto tudo para evitar erros :)


Pedro Martins

Não respondo a duvidas por PM

Share this post


Link to post
Share on other sites
williamjda

Amigo desculpe minha ignorância mas ainda continua dando o mesmo erro. Coloquei o código em todos os campos lembrando que não tem botão para executar este comando. vou digitar o valor no campo 1, 2 e 3 e ele ja deverá somar os valores sozinho.

Private Sub ValorTotalPDTextBox_Leave(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles ValorTotalPDTextBox.Leave
        ValorTotalPDTextBox.Text = CDbl(QuantidadePDL1TextBox.Text) + CDbl(QuantidadePDL2TextBox.Text) + CDbl(QuantidadePDL3TextBox.Text)
    End Sub

o que estou fazendo de errado?

Share this post


Link to post
Share on other sites
williamjda

Ainda continua dando o erro.

cada text box tem um código: que é este.

   Private Sub QuantidadePDL1TextBox_lostFocus(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles QuantidadePDL1TextBox.LostFocus
        Dim texto As String
        Dim textofinal As String
        Dim tamanho As Integer
        textofinal = ""
        texto = QuantidadePDL1TextBox.Text.ToString
        If QuantidadePDL1TextBox.Text.Length < 10 Then
            tamanho = QuantidadePDL1TextBox.Text.Length
            For t As Integer = 1 To 10 - tamanho
                textofinal = textofinal & "0"
            Next
            QuantidadePDL1TextBox.Text = textofinal & QuantidadePDL1TextBox.Text
        End If
        If QuantidadePDL1TextBox.Text = "0000000000" Then
            MsgBox("Preencha o Campo QuantidadePDL1.", MsgBoxStyle.OkOnly, "INFORMAÇÃO")
            QuantidadePDL1TextBox.Text = ""
            QuantidadePDL1TextBox.Focus()
        End If
    End Sub

Para que seja preenchido com zero é a unica coisa que tem de diferente.

Sempre que saio do campo descrição e  vou para o campo colocar o valor ele da a mensagem (Conversion from string "" to type 'Double' is not valid ). 

São 3 campos e um total.

QTD 1                      QTD 2                            QTD 3                              Total   

________________________________________________________________________

| 0000000200      |  0000000300            |  0000000400          |        0000000900          |   

---------------------------------------------------------------------------------------------------

Coloquei o código abaixo nos 4 textbox

  ValorTotalPDTextBox.Text = CDbl(QuantidadePDL1TextBox.Text) + CDbl(QuantidadePDL2TextBox.Text) + CDbl(QuantidadePDL3TextBox.Text)

Mas eu não sei onde estou errando. Você pediu para verificar se os tre campos estão preenchido mas eles sempre aparece em branco por que ainda irei preencher e quando o cursor entra na 1 textbox quantidade e digito um numero ele me retorna a mensagem de erro.

Share this post


Link to post
Share on other sites
Caça

Private Sub ValorTotalPDTextBox_Leave(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles ValorTotalPDTextBox.Leave
IF ValorTotalPDTextBox.Text <> String.Empty and QuantidadePDL1TextBox.Text <> String.Empty and QuantidadePDL2TextBox.Text <> String.Empty and QuantidadePDL3TextBox.Text <> String.Empty Then
        ValorTotalPDTextBox.Text = CDbl(QuantidadePDL1TextBox.Text) + CDbl(QuantidadePDL2TextBox.Text) + CDbl(QuantidadePDL3TextBox.Text)
End IF
End Sub

É assim tão difícil?

1 + 1 = 2 -> isto é em todo o lado, não é só na maquina de calcular..


Pedro Martins

Não respondo a duvidas por PM

Share this post


Link to post
Share on other sites
williamjda

Amigo obrigado pela ajuda e pela paciência porém a forma correta era como eu tinha feito no começo. O código apenas no textbox total e ao invés de usar TextChanged ou Leave usei o LostFocus.

O código ficou assim:

 Private Sub ValorTotalPDTextBox_LostFocus(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles ValorTotalPDTextBox.LostFocus
        ValorTotalPDTextBox.Text = Val(QuantidadePDL1TextBox.Text) + Val(QuantidadePDL2TextBox.Text) + Val(QuantidadePDL3TextBox.Text)
    End Sub

Obrigado pela atenção e desculpe a amolação.

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
Sign in to follow this  

×
×
  • Create New...

Important Information

By using this site you accept our Terms of Use and Privacy Policy. We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.