Arrondi et Non Arrondi

Bonjour

merci a toutes l’équipe pour tous ce qu'il font

je beug sur un sujet, .....et je trouve pas de sortie

j'ai un fichier dans la colonne B plusieurs somme avec virgules.

dans la cellule D2 je fait le total par la formule somme, et la j'ai un resultat

des que j'utilise VBA pour calculer (resultat dans la cellule E2 )via la macro suivante

Option Explicit
Dim j As Long
Dim prix As Long

Sub test()
prix = 0

For j = 2 To Sheets("Feuil1").Range("A" & Rows.Count).End(xlUp).Row
    prix = prix + Sheets("Feuil1").Range("B" & j).Value
Next j

Sheets("Feuil1").Range("E2") = prix

End Sub

le resultat n'est pas le meme

merci pour celui qui peu m'aider

ci-joint un fichier exemple

12test.xlsm (20.89 Ko)

Bonjour,

Petite vision du type de variable...

image

prix As Double????

Bonjour,

Le fait de déclarer les variables en "long" fait perdre les décimales. Déclare-les en double ou simplement :

Dim j
Dim prix

Daniel

Bonjour

merci cousinhub

effectivement, sa double, oubien meme sans rien, c'est a dire "Dim Prix" ca fonctionne ien

merciiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiii

bonjour DanielC

effectivement, merci beaucoupppppppppp

Re-,

Perso, je préfère bien les typer, ça permet souvent d'éviter des erreurs...(et de ne pas trop allouer la mémoire avec le type Variant, le plus vorace en mémoire des types)

bonjour cousinhub

si j'ai bien compris je met " DOUBLE " comme type et ne pas le laisse vide!!!

merci beaucoup

Re-,

Oui, pour moi, c'est préférable

Dim Prix As Double

(PS, et par habitude, je mets toujours la première lettre en majuscule, ça me permet de vérifier que la variable est bien reconnue en la tapant en minuscule dans le code - elle se met automatiquement en Nom Propre-)

re cousinhub

c'est une information noté.

merci beaucoup

Par contre, tu peux laisser j en "long". Pour le gain de taille, on n'en n'est plus aux ordi i8080 (dommage lol). Il y a peut-être un gain de vitesse, par contre.

Daniel

re bonjour

je suis generation commodore c64, la belle epoque, je ne me rappelle plus s'il y avais un tableur, et si oui, j’étais un peu novice de jeu

c'est vrai que pour un i8080 il y a un gain mais pour un i3 ou i5 , on ne sent pas trop

merciiiiiiiiiiiiiii

Dans la même veine, je n'utilise plus que "long" pour les entiers et "double" pour les décimaux (plus de "byte", "integer" ni de "single").

Daniel

Bonjour DanielC

bon a savoir!!!

et ca n'influe en rien ??? integer et long!!

merci par avance

Rechercher des sujets similaires à "arrondi"