XL 2010 Format decimal textbox [RESOLU]

  • Initiateur de la discussion Initiateur de la discussion herve62
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

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

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:
Eh les gars !! j'hallucine ?
Est ce que vous avez pigé mon Pb ?
Selon les images , est ce que pour vous le résultat du Versé - Prix = résultat correct ???
 

Pièces jointes

  • test1.jpg
    test1.jpg
    15.9 KB · Affichages: 33
  • test2.jpg
    test2.jpg
    16.9 KB · Affichages: 29
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:
"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

Dernière édition:
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:
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
 
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+
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD
Retour