Problème addition textbox avec format nombre

  • Initiateur de la discussion Initiateur de la discussion blord
  • 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 !

blord

XLDnaute Impliqué
Bonjour à tous,

J'utilise le code suivant pour formater le contenu de textbox :

Code:
Private Sub TextBoxVIEADH1_change()
TextBoxVIEADH1.Value = Format(TextBoxVIEADH1.Value, "#,##0")
End Sub
Private Sub TextBoxVIEADH2_change()
TextBoxVIEADH2.Value = Format(TextBoxVIEADH3.Value, "#,##0")
End Sub
Private Sub TextBoxVIEADH3_change()
TextBoxVIEADH3.Value = Format(TextBoxVIEADH3.Value, "#,##0")
End Sub

Le problème avec ce code, est que lorsque j'additionne les TB1 et TB2 dans le TB3 et que j'entre par exemple 120 000 + 200 000, le résultat de l'addition donne 320 et non 320 000 ...

Code:
TextBoxVIEADH3.Value = Val(TextBoxVIEADH1) + Val(TextBoxVIEADH2)


Si j'enlève le format l'addition se fait sans problème...

Il est important que le format affiché dans le textbox demeure car les nombres à entrer seront presque toujours de l'ordre du million, donc il est beaucoup plus facile visuellement de lire 6 000 000 au lieu de 6000000.

Merci pour vos bons conseils....

Blord
 

Pièces jointes

Re : Problème addition textbox avec format nombre

Bonsoir Blord, bonsoir le forum,

Ton fichier modifié en pièce jointe. J'ai converti el entier Long mais ça plantait avec une textbox vide. J'ai donc initiliasé les textboxes à zéro...
Si tu n'as pas de décimales et si ton total ne dépasse pas 2 147 483 647, ça devrait aller....
 

Pièces jointes

Dernière édition:
Re : Problème addition textbox avec format nombre

Bonjour Blord,


essaie avec ceci:
Code:
Private Sub TextBoxVIEADH1_change()
TextBoxVIEADH1.Value = Format(TextBoxVIEADH1.Value, "#,##0")
TextBoxVIEADH3.Value = Val(TextBoxVIEADH1) [B][COLOR=blue]* 1000[/COLOR][/B] + Val(TextBoxVIEADH2)[B][COLOR=blue] * 1000[/COLOR][/B]
End Sub
Private Sub TextBoxVIEADH2_change()
TextBoxVIEADH2.Value = Format(TextBoxVIEADH2.Value, "#,##0")
TextBoxVIEADH3.Value = Val(TextBoxVIEADH1)[COLOR=blue][B] * 1000[/B][/COLOR] + Val(TextBoxVIEADH2)[COLOR=blue][B] * 1000[/B][/COLOR]
End Sub

à+
Philippe

Edit: Bonjour Robert
 
Re : Problème addition textbox avec format nombre

Bonjour Robert & Philippe, le Forum,

Merci pour vos deux solutions, elles répondent toutes les deux à mon besoin...

La solution de Philippe sera probablement celle que j'utiliserai car on n'a pas besoin d'initialiser les textbox à 0.....

Merci beaucoup, votre aide est toujours si précieuse....

Benoit Lord
 
Re : Problème addition textbox avec format nombre

Bonjour blord, Philippe, Robert, le forum,

Grâce à JNP sur ce fil :

https://www.excel-downloads.com/threads/delimitateur-de-milliers.144025/

j'ai découvert qu'en VBA le séparateur de milliers se traduit par le caractère de code 160.

Alors ici on peut utiliser :

Code:
Private Sub TextBoxVIEADH1_change()
TextBoxVIEADH1 = Format(TextBoxVIEADH1, "#,##0")
TextBoxVIEADH3 = Val(Replace(TextBoxVIEADH1, [COLOR="Red"]Chr(160)[/COLOR], "")) + Val(Replace(TextBoxVIEADH2, [COLOR="red"]Chr(160)[/COLOR], ""))
End Sub

Private Sub TextBoxVIEADH2_change()
TextBoxVIEADH2 = Format(TextBoxVIEADH2, "#,##0")
TextBoxVIEADH3 = Val(Replace(TextBoxVIEADH1, [COLOR="red"]Chr(160)[/COLOR], "")) + Val(Replace(TextBoxVIEADH2, [COLOR="red"]Chr(160)[/COLOR], ""))
End Sub

Merci encore Jean-Noël 🙂

Fichier joint.

A+
 

Pièces jointes

Dernière édition:
- 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

Discussions similaires

Réponses
13
Affichages
612
Réponses
3
Affichages
449
Réponses
35
Affichages
2 K
  • Question Question
Microsoft 365 TEXTBOX
Réponses
7
Affichages
551
Réponses
12
Affichages
419
Retour