none
Como fazer divisão entre os valores de 2 TextBox e mostrar em outra textBox sem usar botão RRS feed

  • Pergunta

  • Boa noite pessoal

    Não sou novo no excel VBA, mas como as vezes fico muito tempo sem praticar acabo apanhando para resolver uma questões 

    que parecem simples de resolver

    Hoje quebrei a cabeça para resolver essa questão que parecia simples, cheguei a pesquisar na internet, mas nenhum dos exemplos encontrado deu certo, sempre aparecia um erro diferente. Entre os erros estão: Estouro, Variaveis incompativeis, Divisão por zero. e por ai vai

    Vamos ao que interessa

    tenho 3 textbox: tboxVol_garrafa, tboxVol_basc, tboxQuant_basc

    Preciso que ao digitar ou modificar os valores de tboxVol_garraf ou tboxVol_basc

    o tboxQuant_basc faça o seguinte calculo instantaneamente:  tboxVol_garraf  / tboxVol_Basc  e mostre o valor

    Tentei fazer isso no evento change dos tboxVol_garraf  e tboxVol_basc e ja deu erro de "estouro"

    e quando eu apago os dados da tboxVol_garraf ou tboxVol_Basc da erro tambem, porque as tbox não podem ficar vazias.

    Tem a questão da separador decimal tambem, que na tboxVol_basc tenho que digitar um valor 6,3 e para calculo o 3 depois da virgula não é calculado. 

    Isso tem solução?

    Aguardo o apoio de vcs

    Abraço


     

    segunda-feira, 9 de abril de 2018 02:37

Respostas

  • É facil.

    Para as contas saírem corretas deves digitar os valores com vírgula e não com ponto se se tratar de valores decimais.

    Deste o exemplo de digitar o valor de "6.3", mas e se for "6.9", só a parte inteira interessa?

    Faz um Userform, coloca 3 Textbox e um botão para exucutar.

    Cola o código que segue.

    Private Sub CommandButton1_Click()
    
    If TextBox1.Value <> "" and TextBox2.Value <> "" Then
        If TextBox1.Value > 0 And TextBox2.Value > 0 Then
            TextBox3.Value = Fix(TextBox1.Value) / Fix(TextBox2.Value)
        Else
            Cancel = True
        End If
    Else
        Cancel = True
    End If
    
    
    End Sub

    A expressão FIX, trata sempre e apenas a parte inteira.

    Se no caso de 6.9 quereres arredondar para 7, utiliza  termo INT (de inteiro).

    O exemplo utiliza botão para experiência, mas podes adaptar a rotina para o evento exit da Textbox2 por exemplo, que não carece de botão.

    É só pensares como pretendes fazê-lo.


    M_A_S_L





    • Sugerido como Resposta Lucio Rogerio SPBanned terça-feira, 10 de abril de 2018 09:41
    • Editado M_A_S_L terça-feira, 10 de abril de 2018 23:36
    • Marcado como Resposta rshenrique domingo, 15 de abril de 2018 13:13
    terça-feira, 10 de abril de 2018 09:20

Todas as Respostas

  • É facil.

    Para as contas saírem corretas deves digitar os valores com vírgula e não com ponto se se tratar de valores decimais.

    Deste o exemplo de digitar o valor de "6.3", mas e se for "6.9", só a parte inteira interessa?

    Faz um Userform, coloca 3 Textbox e um botão para exucutar.

    Cola o código que segue.

    Private Sub CommandButton1_Click()
    
    If TextBox1.Value <> "" and TextBox2.Value <> "" Then
        If TextBox1.Value > 0 And TextBox2.Value > 0 Then
            TextBox3.Value = Fix(TextBox1.Value) / Fix(TextBox2.Value)
        Else
            Cancel = True
        End If
    Else
        Cancel = True
    End If
    
    
    End Sub

    A expressão FIX, trata sempre e apenas a parte inteira.

    Se no caso de 6.9 quereres arredondar para 7, utiliza  termo INT (de inteiro).

    O exemplo utiliza botão para experiência, mas podes adaptar a rotina para o evento exit da Textbox2 por exemplo, que não carece de botão.

    É só pensares como pretendes fazê-lo.


    M_A_S_L





    • Sugerido como Resposta Lucio Rogerio SPBanned terça-feira, 10 de abril de 2018 09:41
    • Editado M_A_S_L terça-feira, 10 de abril de 2018 23:36
    • Marcado como Resposta rshenrique domingo, 15 de abril de 2018 13:13
    terça-feira, 10 de abril de 2018 09:20
  • Amigo

    Desculpa a demora em dar retorno.

    No Final Verifiquei aqui e era exatamente isso que precisava. 

    No meu caso era necessário eu inseriri um ComandButton. E foi o que fiz

    Apenas Retirei o "Fix" e deu certinho.

    Muito Obrigado

    P.S Vou abrir outro topico. Da uma olhada por favor, ve se consegue me ajudar.


    domingo, 15 de abril de 2018 04:22
  • Se a resposta resolveu a tua dúvida, marca o tópico como respondido.

    M_A_S_L

    domingo, 15 de abril de 2018 12:41