XL 2010 Format decimal textbox [RESOLU]

herve62

XLDnaute Barbatruc
Supporter XLD
Bonsoir
Je tourne bourrique avec le format "monnaie" des textbox
Au début j'avais une box2 ( versé) en entier 10 20 ..etc avex une Box_change c'était nickel mais dans le réel j'ai pensé que le client pourrait donner 20.5 pour un Prix de 15.5 et là déjà en tapant juste 20. > ça plante( on peut pas mettre le 5); Je viens de passer la box en AfterUpdate mais ici pour l'exemple "rendu" > FAUX
De même si 8.5 > versé 10 rendu Faux ??
 

Pièces jointes

  • FormatPt.xlsm
    20.6 KB · Affichages: 15

ChTi160

XLDnaute Barbatruc
Bonjour Hervé
Bonjour Marcel
il faudrait dans un premier temps limité ce qui peut être entré dans le TextBox
Puis enfin faire les calculs
TU as de Nombreux Fils qui traitent de ce sujet ex n'Autoriser que des Chiffres dans textBox etc
Le Format monétaire est je Crois Ccur( )
voir aussi le Lien :

Le Lien :

ex :

VB:
Dim LaValeur As Double
Dim LavaleurCur As Currency

LaValeur = 212.123456
LavaleurCur = CCur(LValue)

LavaleurCur sera égale à :
212.1234
Que veux-tu faire exactement, sur quoi travailles tu ?
Bonne fin de Soirée
Jean marie
 
Dernière édition:

TooFatBoy

XLDnaute Barbatruc
Soit tu t'es mal exprimé, soit il y a un problème chez toi car chez moi il n'y a aucun plantage.

Après, si tu parles de ton erreur dans le code, qui fait que le résultat est faux quand il y a un nombre décimal avec une virgule dans une TextBox, oui, on l'a constatée. ;)
Si c'est une correction de cette erreur que tu veux, je te propose d'essayer ceci :
VB:
rend = TextBox2 - TextBox1
 
Dernière édition:

Eric C

XLDnaute Barbatruc
"Bonjoir" le forum
"Bonjoir" Hervé, Jean-Marie, Marcel

@ Marcel - rend = TextBox2 - TextBox1 - Non, les valeurs Texte ne sont pas converties

@ Hervé :
VB:
Private Sub TextBox2_AfterUpdate()
rend = Val(TextBox2) - CDbl(TextBox1)
TextBox3 = Format(rend, "#,##0.00")
End Sub

@ Jean-Marie - Oui, il faut limiter les entrées et calculer - Voir fichier joint (j'avais pas sommeil ;)) - Fichier repris sur une idée de notre Patrick T (que je salue au passage).

Bonne nuit à toutes & à tous
@+ Eric c
 

Pièces jointes

  • FormatPt revu par Eric c .xlsm
    28 KB · Affichages: 4
Dernière édition:

cp4

XLDnaute Barbatruc
Bonjour @Marcel32 ;), @ChTi160 ;), @Eric C ;), @herve62 ;)

@herve62: Avec mon Excel2010 ça fonctionne parfaitement en ajoutant la procédure ci-dessous. Elle formate la saisie de la textbox2 (point en virgule).
VB:
Private Sub TextBox2_keyPress(ByVal keyAscii As MSForms.ReturnInteger)
If InStr("0123456789,.", Chr(keyAscii)) = 0 Then keyAscii = 0
If keyAscii = Asc(".") Then keyAscii = Asc(",")
End Sub

nb: modifie Val par Cdbl
VB:
rend = CDbl(TextBox2) - CDbl(TextBox1)

J'espère que ça résoudra ton problème.

Bonne journée.
 
Dernière édition:

Eric C

XLDnaute Barbatruc
Re le fil
Bonjour cp4
@ cp4 - Essais Cbo = AC - TxtB1: 8,5 - Mets en TxtB2 : 14,3897 - Tu obtiens 5,89 au lieu de 5,8897 alors que MaxLength est à Null - Regarde mon fichier en XL2010.
Bonne journée à toutes & à tous
@+ Eric c
 

cp4

XLDnaute Barbatruc
Re le fil
Bonjour cp4
@ cp4 - Essais Cbo = AC - TxtB1: 8,5 - Mets en TxtB2 : 14,3897 - Tu obtiens 5,89 au lieu de 5,8897 alors que MaxLength est à Null - Regarde mon fichier en XL2010.
Bonne journée à toutes & à tous
@+ Eric c
Tu obtiens ce résultat car tu as formaté TextBox3 = Format(rend, "#,##0.00")
Il faudrait faire TextBox3 = rend , pour obtenir le résultat escompté.

A+
 

Statistiques des forums

Discussions
311 720
Messages
2 081 925
Membres
101 841
dernier inscrit
ferid87