Autore Topic: [RISOLTO] € con due numeri dopo la virgola  (Letto 713 volte)

Offline ilfurlan

  • Grande Gambero
  • ***
  • Post: 111
    • Mostra profilo
Re:€ con due numeri dopo la virgola
« Risposta #15 il: 11 Febbraio 2017, 21:15:14 »
Citazione

Circa il mio suggerimento, non era rivolto a quel codice che peraltro ti sconsiglio dall'usare, cambiare il valore introdotto è pratica fuorviante nei confronti dell'utente.
Ti avevo postato l'esempio proprio per meglio spiegarlo.

Grazie Gianluigi, mentre io mi ripassavo le variabili mi avete aiutato a capire.

Grazie anche a Vuott per le sue dritte.
Non insegno ma imparo per riportare ad altri il mio sapere.

Offline ilfurlan

  • Grande Gambero
  • ***
  • Post: 111
    • Mostra profilo
Re:[RISOLTO] € con due numeri dopo la virgola
« Risposta #16 il: 21 Febbraio 2017, 13:23:52 »
Alla fine, nelle mie sperimentazioni ho fatto così:

Con cinque TextBox

La 1 per l'importo
La 2 per il rincaro
La 3 per l'importo rincarato
La 4 per l'IVA
La 5 per l'importo ivato

Durante la digitazione della valuta, per costringere ad utilizzare solo numeri e/o la virgola, ho utilizzato questo codice:

Codice: [Seleziona]
Public Sub TextBox1_KeyRelease()

  Dim vIntercetta As String

  vIntercetta = TextBox1.Text
  If Val(vIntercetta) Not Val(vIntercetta)
  TextBox1.Text = ""
  Endif

End

Durante la digitazione dei rincari, per costringere ad utilizzare solo numeri interi, ho utilizzato questo codice:

Codice: [Seleziona]
Public Sub TextBox2_KeyRelease()

  Dim vIntercetta As String

  vIntercetta = TextBox2.Text
  If Val(vIntercetta) Not Val(vIntercetta)
  TextBox2.Text = ""
  Endif

  TextBox2.Text = Replace$(TextBox2.Text, ",", "")

End

Per effettuare il calcolo automatico, ho utilizzato questo codice che, per evitare errori nel calcolo:
1) Se i valori sono nulli mette lo zero
2) Toglie il simbolo dell'euro, se presente, per lasciare l'importo "pulito" da simboli
3) Effettua il calcolo ed assegna i valori
4) Riporta tutto al formato valuta aggiungendo il simbolo dell'euro

Codice: [Seleziona]
Public Sub TextBox1_LostFocus()

  If TextBox1.Text = ""
  TextBox1.Text = 0
  Endif
 
  If TextBox2.Text = ""
  TextBox2.Text = 0
  Endif
 
  If TextBox4.Text = ""
  TextBox4.Text = 0
  Endif

  TextBox1.Text = Replace$(TextBox1.Text, "€ ", "")
  TextBox3.Text = Replace$(TextBox3.Text, "€ ", "")
  TextBox5.Text = Replace$(TextBox5.Text, "€ ", "")
  TextBox3.Text = Val(TextBox1.Text) + (Val(TextBox1.Text) / 100 * TextBox2.Text)
  TextBox5.Text = TextBox3.Text + (TextBox3.Text / 100 * TextBox4.Text)
  TextBox1.Text = Format$(Val(TextBox1.Text), "€ 0.00")
  TextBox3.Text = Format$(TextBox3.Text, "€ 0.00")
  TextBox5.Text = Format$(TextBox5.Text, "€ 0.00")

End

In allegato potete provare come funziona tenendo presente che il tasto calcola è solo per uscire "LostFocus()" dalle TextBox

Mi pare carino e abbastanza in linea con le mie aspettative, Voi che ne pensate ?

P.S.

Da Gian.... mi aspetto un voto  :coder:
« Ultima modifica: 21 Febbraio 2017, 15:06:28 da ilfurlan »
Non insegno ma imparo per riportare ad altri il mio sapere.