Problema con numeri decimali
Hai un problema con Excel? 
Problema con numeri decimali
di tommy270881 data: 06/05/2016 14:16:20
Buon giorno a tutto il forum.
Ho scritto la seguente macro:
Sub ConvalidaArrotondamenti()
'Toglie la protezione al foglio
ActiveSheet.Unprotect
'Seleziona solo le celle valorizzate
ActiveSheet.Range("$A$11:$E$19").AutoFilter Field:=2, Criteria1:="<>"
'Effettua la somma
Range("M21:N21").Select
ActiveCell.FormulaR1C1 = "=+SUM(R[-9]C[1]:R[-2]C[1])"
'Notifica del buon fine
Dim Valore As Integer
Valore = Worksheets("Arrotondamenti").Range("M21")
If Valore <> "0.00" Then
MsgBox ("Esatto")
Else
MsgBox ("La somma delle partite non può essere zero")
ActiveSheet.Range("$J$11:$N$19").AutoFilter Field:=2
End If
'Ripristina la protezione al foglio
ActiveSheet.Protect DrawingObjects:=True, Contents:=True, Scenarios:=True
End Sub
Il problema che riscontro è che se il valore presente nella cella M21 è uguale ad esempio a 0,02 Vba mi restituisce la seconda condizione ovvero:"La somma delle partite non può essere zero.".
Questa situazione si verifica fino a 0,50 compreso.
Non appena passo a 0,51 la macro inizia a funzionare bene.
Qualcuno saprebbe dirmi a cosa è dovuto questo errore?
Un saluto.
di Raffaele_53 data: 06/05/2016 23:22:41
Forse perchè in Worksheets("Arrotondamenti"), arrotondi un numero?
Non saprei senza vedere un 'allegato e formula. Comunque Integer è un numero intero, Dim Valore As Double è un decimale
di tommy270881 data: 12/05/2016 11:41:39
Raffaele grazie mille per la tua indicazione.
Ho risolto modificando la categorizzazione della variabile da Integer a Double.
Ancora grazie mille.
Vuoi Approfondire?