Somme si cellule en Gras problème d'arrondi

Bonjour à tous,

J'ai trouvé un code pour calculer les cellules à condition quelles soient en gras mais j'ai quand même une petite différence à cause des arrondis

Voici mon code

Function SommeGras(champ As Range)

Application.Volatile

Dim i, t

t = 0

For Each i In champ

If i.Font.Bold = True Then

If IsNumeric(i) Then t = t + Val(i.Value)

End If

Next i

SommeGras = t

End Function

Si je fais la somme de 2956.29 + 501 .82 en arrondissant je trouve 3458

Avec la macro je trouve 3457

Pourquoi?

Merci pour votre aide

Bonjour,

La macro fait les arrondis avant la somme à cause de la fonction VAL() => 2956 + 501 = 3457

Toi tu les fais après => 2956.29 + 501 .82 = 3458.11 => 3458

Pourquoi tu utlises VAL ? tes cellules contiennent du texte et des nombres dans la même cellule, ou sont au format texte ?

Je suis novice en Macro j'ai réussi à trouvé cette macro sur le net. Alors pourquoi j'utilise Val je ne le sais pas.Je te dirai que je ne comprends pas trop cette macro!!!!

Pour ma part les données que je somme sont des formules.

En fait la fonction VAL() affiche les chiffres d'une chaine de caractères mais s'arrete au 1er caractère non numérique à part l'espace (donc le point ici) c'est pour ça qu'elle ne prend pas après la virgule.

Si tes formules te retournent des chiffres, essais sans le VAL() en faisant :

t = t+ i.Value

Et si cela ne marche pas essais en remplacant ta fonction comme ceci (mais seulement si tes formules te retournent des chiffres sans texte):

Function SommeGras(champ As Range)
 Application.Volatile
 Dim i, t
 t = 0
 For Each i In champ
 If i.Font.Bold = True Then
 If IsNumeric(i) Then t = t + CDbl(i.Value)
 End If
 Next i
 SommeGras = Round(t, 0)
End Function

Cordialement,

Super en enlevant VAL ça fonctionne

Merci à toi

Bonne après midi

Rechercher des sujets similaires à "somme gras probleme arrondi"