You are here:Home-Vostri Lavori-Calcolatore – Come realizzare Calcolatrice-Rispondi a: Calcolatore – Come realizzare Calcolatrice
Rispondi a: Calcolatore – Come realizzare Calcolatrice2018-01-10T19:02:25+01:00

Home Forum Vostri Lavori Calcolatore – Come realizzare Calcolatrice Rispondi a: Calcolatore – Come realizzare Calcolatrice

sidsid
Moderatore
    Post totali: 752

    Ciao a tutti
    Io eviterei di far fare i conti a vba, anche perchè devi tener presente che le operazioni non vanno eseguite in linea; provo a spiegarmi meglio: se digito 5+4*20 il risultato non è 180 ma 85; questo perchè vanno eseguite prima le moltiplicazioni e le divisioni nell’ordine in cui le troviamo, e poi le addizioni e le sottrazioni anche queste nell’ordine in cui si trovano. In pratica i segni + e – sono dei separatori; l’operazione va letta ed eseguita in questo modo 5 + (4*20).

    Altra curiosità: dichiari le variabili ma poi non le usi; esempio per il codice

    Private Sub cmb_piu_Click()
    operatore = "+"
    txt1.Text = txt1.Text & " + "
    End Sub

    Perchè non usi la variabile se la dichiari?
    Quindi, o scrivi questo

    Private Sub cmb_piu_Click()
    txt1.Text = txt1.Text & " + "
    End Sub

    Oppure

    Private Sub cmb_piu_Click()
    operatore = "+"
    txt1.Text = txt1.Text & operatore
    End Sub

    Inoltre per gli operatori della moltiplicazione e divisione, non puoi usare la “x” e “:” perchè non vengono riconosciuti (mentre invece vanno bene per le caption dei pulsanti); devi usare “*” e “/”
    esempio

    Private Sub cmb_per_Click()
    operatore = "*"
    txt1.Text = txt1.Text & operatore
    End Sub

    Infine io farei così; sfrutterei una cella d’appoggio in cui inserisco la formula che ha come riferimento la stringa che si crea in txt1; poi copio il risultato della formula in txt2, ed infine elimino la formula dalla cella
    Il codice che abbino al pulsante “=”

    Private Sub cmb_uguale_Click()
    With Sheets("Foglio1").Range("A1")
    .FormulaLocal = "=" & Me.txt1
    Me.txt3.Value = .Value
    .ClearContents
    End With
    End Sub