Problema con numeri decimali



  • 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.