Bonjour,
Parce qu'il y a souvent des erreurs d'arrondi dûes aux conversions décimal/binaire que tu ne vois pas.
Tu peux te baser sur l'affichage avec :
Cells(i, 4) = Len(Cells(i, 3).Text) - 2
Si tu as le nombre 0.666666667 affiché au format nombre avec 2 chiffres après la virgule (donc 0.67 affiché) ça te retournera 2. A voir si c'est un avantage ou un inconvénient pour toi.
Ou bien arrondir le calcul précédent :
Cells(i, 3) = Round(Cells(i, 2) - Int(Cells(i, 2)), 12)
eric