Format monétaire Textbox

Bonjour à tous et merci à ceux qui prendront un peu de leur temps précieux pour me lire.

J'ai créé un userform dans lequel je collecte 20 montants au format monétaire et en €.

Exemple : 2 263,00 € (c'est de cette manière que je souhaite que les montants apparaissent sur le usrform.

C'est le cas avec l'option : TextBox24.Value = Format(TextBox24.Value, "# ### ##0.00 €") pour chaque saisie.

Tout ça fonctionne bien tant que pour les décimales, je saisis une virgule comme décimale. Si je saisis un point (.) comme décimale rien ne va plus :

- Le format reste figé ex : 10.25 saisi, s'affiche tel quel : 10.25 (et non 10,25 € si je saisis une virgule).

Je voudrais savoir s'il existe un moyen de "forcer" la saisie en virgule, même si un point est saisi.

Autre demande : à chaque saisie, je recalcule le textbox qui affiche le total des 10 premières textbox, de la manière suivante :

Mes texbox de saisie vont de 14 à 23 et j'ai la même formule pour chacune d'entre elles (Afterupdate) qui recalcul l'ensemble pour un affichage du résultat en textbox24

Private Sub TextBox15_AfterUpdate()

TextBox15.Value = Format(TextBox15.Value, "# ### ##0.00 €")

TextBox24 = val(TextBox14) + val(TextBox15) + val(TextBox16) + val(TextBox17) + val(TextBox18) + val(TextBox19) + val(TextBox20) + val(TextBox21) + val(TextBox22) + val(TextBox23)

End Sub

Pourrait-on me dire si cette méthode est la bonne ?

J'ai des erreurs dans la somme totale, mais uniquement si je saisis des nombres avec décimales.

La saisie des décimales, même avec virgule, semble ignorée...

Pour exemple, je vous joins une image de ma liste de montants, et de la dernière du bas, comme total.On constate que les décimales ne sont pas prises en compte dans le total.

Quelqu'un aurait-il une idée d'où peut se situer le problème ?

Merci par avance pour votre aide.

Laurent

Bonsoir Laurent67 le forum

il faut simplement lui mettre

en première ligne de ton textbox1 (par exemple)

Textbox1=replace(textbox1,".",",")

et tu n'as plus de soucis

a+

Papou

Bonjour Papou ainsi qu'au forum,

Merci papou ! l'affichage fonctionne super bien.

Plus de problème d'affichage de virgules et de point.

Le problème maintenant et d'additionner tout ça.

Visiblement, le calcul ne prend pas les décimales en comptes...

J'ai ça comme code dans chaque textbox

Private Sub TextBox3_AfterUpdate()

TextBox3 = Replace(TextBox3, ".", ",")

TextBox3.Value = Format(TextBox3.Value, "# ### ##0.00 €")

TextBox25 = val(TextBox3) + val(TextBox4) + val(TextBox5) + val(TextBox6) + val(TextBox7) + val(TextBox8) + val(TextBox9) + val(TextBox10) + val(TextBox11) + val(TextBox12)

Problème identique pour le calcul : les décimales ne sont pas prises en compte dans l'addition qui s'affiche dans textbox25

Si quelqu'un sait comment on additionne des valeurs monétaires de textbox....

Merci par avance !

Laurent

BOnjour,

Je n'aime pas trop la formule Val pour des additions de texbox qui ne sont pas du texte :

"Fonction Val"

"Renvoie les nombres contenus dans une chaîne en tant que valeur numérique de type approprié."

TextBox25 = Format(CdBl(TextBox3) + Cdbl(TextBox4) + Cdbl(TextBox5) +   ........ , "# ### ##0.00 €")

Re Bonjour Laurent67 Xmenpl le forum

bah Xmenpl m'a coupé l'herbe sous le pied

moi j'aurais fait une boucle, mais le résultat est kif

et si tu n'y arrives pas envoie le fichier on va te modifier tout cela proprement

a+

Papou

Bonjour Laurent Xmenpl le forum

bon tu n'as pas joint de fichier alors voilà celui que je viens de faire

bien que je trouve complètement idiot de s’embarrasser des € dans les textboxs, mais bon!!!!

Voilà le fichier tu ouvres tu testes et tu me redis

a+

Papou

170laurent67-v1.xlsm (28.55 Ko)

Xmenpl et papou

Merci pour vos réponse. La méthode de Papou semble excellente.

Reste pour moi à l'intégrer dans mon userform...

Pas simple, vu mon (faible) niveau en VBA.

Je vais donc essayer d'intégrer cela :

Private Sub UserForm_Initialize()

Dim x As Control, i&

For Each x In Me.Controls

If TypeName(x) = "TextBox" Then

ReDim Preserve Test(0 To i)

Set Test(i).TxbGrp = x

i = i + 1

End If

Next x

End Sub

... mais j'ai vraiment une difficulté à comprendre le fonctionnement.

Je crois comprendre qu'on utilise une boucle pour redéfinir le format de la textbox, c'est bien cela ?

En tout cas, merci pour votre aide

Laurent

Bonjour Laurent67 le forum

Non pas du tout, avec la boucle je défini un groupe de textbox dans un module de classe.

et ensuite tous les textboxs sont pilotés par le module de classe

si tu n'as pas le niveau envoie ton fichier car un moule de classe pour un débutant c'est un peu compliqué

a+

Papou

Rechercher des sujets similaires à "format monetaire textbox"