Calcoli in un userform



  • Calcoli in un userform
    di Roby (utente non iscritto) data: 07/04/2014 11:13:34

    Buongiorno a tutti, in un file che allego dovrei eseguire dei calcoli direttamente in un userform con l'immissione di numetri attraverso due textbox, con il segente codice tutto funziona perfettamente, ma se vado ad modificare un valore non si aggiornano le text box dove ci sono i risultati, come posso fare?
    grazie anticipatamente per eventuali suggerimenti.
     
    Dim resultA As Double
    Dim resultB As Double
    Private Sub TextBox1_Change()
    resultA = Val(TextBox1) * 14 + Val(TextBox2)
    resultB = Val(TextBox3) * 80 / 100
    TextBox3 = resultA
    TextBox4 = resultB
    End Sub
    Private Sub TextBox2_Change()
    resultA = Val(TextBox1) * 14 + Val(TextBox2)
    resultB = Val(TextBox3) * 80 / 100
    TextBox3 = resultA
    TextBox4 = resultB
    End Sub
    



  • di lepat (utente non iscritto) data: 07/04/2014 12:10:26

    a parte che la formila sotto Somma1 non corrisponde ai calcoli che fa la macro, tutto il resto mi funziona



  • di totygno71 (utente non iscritto) data: 07/04/2014 12:13:38

    anche a me funziona



  • di lepat (utente non iscritto) data: 07/04/2014 12:22:11

    il codice corretto è questo
     
    Dim resultA As Double
    Dim resultB As Double
    Private Sub TextBox1_Change()
    resultA = Val(TextBox2) * 14 + Val(TextBox1)
    resultB = resultA * 80 / 100
    TextBox3 = resultA
    TextBox4 = resultB
    End Sub
    
    Private Sub TextBox2_Change()
    resultA = Val(TextBox2) * 14 + Val(TextBox1)
    resultB = resultA * 80 / 100
    TextBox3 = resultA
    TextBox4 = resultB
    End Sub



  • di Roby (utente non iscritto) data: 07/04/2014 13:11:47

    innanzitutto grazie per la risposta, ci sono quasi: allego nuovamente il programma con il nuovo codice, funziona quasi tutto nel senso che se vado a variare la text box1 dopo aver già inserito dei valori nelle textbox1 e 2, le somme non si aggiornano automaticamente. sigh
     
    Dim resultA As Double
    Dim resultB As Double
    Private Sub TextBox1_Change()
    resultA = Val(TextBox1) * 14
    resultB = resultA * 80 / 100
    TextBox3 = resultA
    TextBox4 = resultB
    TextBox3 = Format(TextBox3, "#,##0.00")
    TextBox4 = Format(TextBox4, "#,##0.00")
    End Sub
    
    Private Sub TextBox2_Change()
    If TextBox1 = True Then
    resultA = (Val(TextBox1) * 14) + Val(TextBox2)
    Else: resulA = Val(TextBox2)
    End If
    resultB = resultA * 80 / 100
    TextBox3 = resultA
    TextBox4 = resultB
    TextBox3 = Format(TextBox3, "#,##0.00")
    TextBox4 = Format(TextBox4, "#,##0.00")
    
    End Sub



  • di scossa data: 07/04/2014 13:44:34

    Semplificando al massimo:


    Private Sub TextBox1_Change()
    TextBox3 = Format(Val(TextBox1.Value) * 14 + Val(TextBox2.Value), "#,##0.00")
    TextBox4 = Format((Val(TextBox1.Value) * 14 + Val(TextBox2.Value)) * 80 / 100, "#,##0.00")
    End Sub

    Private Sub TextBox2_Change()
    TextBox3 = Format(Val(TextBox1.Value) * 14 + Val(TextBox2.Value), "#,##0.00")
    TextBox4 = Format((Val(TextBox1.Value) * 14 + Val(TextBox2.Value)) * 80 / 100, "#,##0.00")
    End Sub






    scossa's web site
    Se tu hai una mela, ed io ho una mela, e ce le scambiamo, allora tu ed io abbiamo sempre una mela per uno.
    Ma se tu hai un'idea, ed io ho un'idea, e ce le scambiamo, allora abbiamo entrambi due idee. (George Bernard Shaw)



  • di lepat (utente non iscritto) data: 07/04/2014 14:10:06

    le 2 macro devono essere uguali e tu Roby non le hai fatte uguali nel tuo ultimo messaggio



  • di Roby (utente non iscritto) data: 07/04/2014 14:30:26

    grazie Scossa, è proprio quello che volevo ottenere! Spero che il tuo aiuto possa essere prezioso anche per qualche altro utente.
    Ciao.



  • di scossa data: 07/04/2014 14:38:20

    A dire il vro ho solo semplificato quanto ti aveva già suggerito patel!


    scossa's web site
    Se tu hai una mela, ed io ho una mela, e ce le scambiamo, allora tu ed io abbiamo sempre una mela per uno.
    Ma se tu hai un'idea, ed io ho un'idea, e ce le scambiamo, allora abbiamo entrambi due idee. (George Bernard Shaw)



  • di Roby (utente non iscritto) data: 07/04/2014 14:44:33

    si, sono io che ho fatto casino essendo alle prime armi. grazie a tutti