Problème dans l'addition des valeurs dans les textbox

Bonsoir,

Mes problèmes sont les suivants :

1. l'addition de plusieurs valeurs textbox dans les bons de livraison sont fausses car les chiffres après la virgule ne sont pas pris en compte et cela fausse le résultat.

2. la copie du total du BL dans la fiche du dentiste ne se fait que en format texte au lieu du format nombre et empêche l'utilisation de la formule de calcul.

pouvez vous me dire quelles sont les solutions a apporter à la macro pour résoudre mes problèmes.

je vous joins le fichier ce sera plus explicite.

crdlt

ET 87

Bonsoir,

les TextBox comme leur nom l'indique sont "du texte", il faut donc dire à VBA que ce sont des chiffres...

Pour cela il faut remplacer la virgule par un point, puis dire à VBA que la valeur de la TextBox est une valeur numérique :

Val_Numérique = CDbl(Replace(TextBox1.Value, ",", ".")) + CDbl(Replace(TextBox2.Value, ",", "."))

ou bien "un truc" de ce genre.

@ bientôt

LouReeD

Salut LouReed !

Tu as failli me faire douter, aussi j'ai fait quelques vérifications :

On utilise généralement le point du pavé numérique pour insérer le séparateur décimal (lequel produit une virgule dans Excel, mais dans une TextBox, le point restera un point).

Deux types de solutions :

on convertit avec Val : Val ne connaît que le point comme séparateur décimal, et ça fonctionne...

mais pas forcément esthétique d'avoir un point à l'écran, donc si on l'a transformé en virgule, on peut toujours faire la conversion en le changeant en point pour convertir...

NB: Valeur utilisant le point comme séparateur : IsNumeric renverra False !!

on convertit avec CDbl, CDec, etc. : il faut une virgule car là on fonctionne avec les paramètres régionaux...

NB: Valeur utilisant la virgule comme séparateur : IsNumeric renvoie True !

Dans mes comptes perso, je mets les valeurs au format dans TextBox : virgule et 2 décimales, j'affecte sans reconvertir et j'ai des nombres à l'arrivée... mais je n'utilise pas de format monétaire, ni dans TextBox ni dans Excel.

Avec un format monétaire dans TextBox, indispensable de reconvertir (Val sera sans doute le plus pratique dans ce cas (en substituant point à virgule). Mais j'ai vu cas récemment où sans format monétaire dans TextBox mais format monétaire dans cellule, texte à l'arrivée si on ne convertit pas (là conversion directe avec CDec ou CDbl...)

Cordialement.

Merci MFerrand pour avoir regarder une solution a mes problème.

peux tu me dire a quel endroit je mettre la ligne de code car je vois bien le format de textbox actuelle mais je ne sais pas ou l'écrire.

Val_Numérique = CDbl(Replace(TextBox1.Value, ",", ".")) + CDbl(Replace(TextBox2.Value, ",", "."))

Dans mon cas pour les chiffres après la virgule ne s'additionnent pas? j'ai beau regarder je ne comprend pas et je suis perdu

crdlt

ET 87

Bonjour LouReed,

peux tu me dire si chez toi la macro addition bien les virgules et quelle ne copie pas en format texte.

merci encore pour les recherches

crdlt

ET 87

Bonjour,

Je m'adressais à LouReed... mais si tu m'as lu, tu as dû voir que j'explique que l'utilisation de CDbl implique la virgule comme séparateur décimal. Il ne faut donc pas la remplacer par un point dans ce cas.

Cordialement.

Bonjour

j'ais fait la premiere ligne

regarde bien

a toi de faire les autre

A+

Maurice

Bonjour

pas de réponse ??

dernier envoie

Maurice

Ouais ok... je m'en vais, j'ai tout faux !!!!

@ bientôt

LouReeD

Maréchal bonsoir,

en effet dans ma formule je me suis emmêlé les pinceaux !

Val_Num = Val(Replace(TextBox1.value,",","."))

Est-ce plus propre ainsi ?

@ bientôt

LouReeD

Salut LouReed !

Avec Val no problem ! C'est sa particularité de ne connaître que le point... Mais ce qui fait son intérêt malgré cela, c'est qu'il récupère un nombre dans du texte, la partie numérique qui précède les caractères autres, et qu'il ignore les espaces (ce qui constitue un avantage pour son utilisation avec des paramètres FR, espace comme séparateur de milliers...)

Cordialement.

Bonjour,

ce doit être pour cela que je l'ai utilisé !

La fatigue m'aura certainement fait dire des bêtises...

Bonne nuit et @ bientôt

LouReeD

Désoler pour ne pas avoir répondu j'ai du absenté

Merci pour tous archer

ET 87.

Merci a tous

j'ai trouver mon erreur

il fait allé dans les paramètres régionaux de l'ordi pour changer la virgule en point, car sur l'un des pc je ne l'avais pas changé.

crdlt

ET 87

Rechercher des sujets similaires à "probleme addition valeurs textbox"