[Résolu] Problème de virgule et de point avec Currency

Gilles52300

XLDnaute Junior
Bonjour,

Voici un petit problème qui me prend la tête et dont je n'arrive pas à trouver la solution.
Je transforme la valeur d'une textbox en valeur monétaire. pour des nombres entiers, pas de soucis, j'ai bien "300 € qui vont s'afficher. par contre si j'entre "300,50" dans mon textbox, j'ai une erreur (incompatibilité de type) qui apparait et la valeur du textbox se transforme en "30,0.5"

Si vous aviez une idée pour résoudre ce problème, d'avance merci.

Code:
Private Sub CommandButton2_Click()
Dim aCpte As Currency, cLient As String

Sheets("Infos").Select

'recherhce de la ligne du client pour y mettre le montant de l'acompte
TextBox2.Value = Format(TextBox2.Value, "# ##0,00 €")
aCpte = TextBox2
cLient = ComboBox2
cLient = Cells.Find(cLient).Row
Range("I" & cLient) = aCpte

Unload Me
End Sub
 
Dernière édition:

Gilles52300

XLDnaute Junior
Re : Problème de virgule et de point avec Currency

Merci pour ton aide.
je viens d'essayer, mais j'ai toujours le même problème dès que je veux mettre des chiffres après la virgule. Pour des chiffres comme "1,52" pas de soucis. par contre "11,20" va s'afficher "1 1.2.00 €". "11,53" va s'afficher correctement par contre "111,53" va apparaitre comme cela "111.53.00"

j'ai refait le code suivant.

Code:
Private Sub CommandButton2_Click()
cLient As String

Sheets("Infos").Select

'recherhce de la ligne du client pour y mattre le montant de l'accompte
cLient = ComboBox2
cLient = Cells.Find(cLient).Row
Range("I" & cLient) = Format(TextBox2.Value, "# ##0.00 €")

Unload Me
End Sub
 

job75

XLDnaute Barbatruc
Re : Problème de virgule et de point avec Currency

Bonjour Gilles52300, Caillou, mutzik,

En vba la virgule est le séparateur de milliers, le point est le séparateur décimal :

Code:
'---
If Not IsNumeric(TextBox2) Then TextBox2 = "": TextBox2.SetFocus: Exit Sub
TextBox2 = Format(TextBox2, "#,##0.00 €")
'---
A+
 

job75

XLDnaute Barbatruc
Re : Problème de virgule et de point avec Currency

Re,

Cela dit IsNumeric(TextBox2) renvoie True si le séparateur décimal dans TextBox2 est le séparateur décimal de l'ordi.

Pour fonctionner quel que soit le séparateur utilisé dans TextBox2 :

Code:
'---
TextBox2 = Val(Replace(TextBox2, ",", "."))
If Not IsNumeric(TextBox2) Then TextBox2 = "": TextBox2.SetFocus: Exit Sub
TextBox2 = Format(TextBox2, "#,##0.00 €")
'---
A+
 

Gilles52300

XLDnaute Junior
Re : Problème de virgule et de point avec Currency

bonsoir Job75, Mutzik et Caillou,

J'ai testé ton code Job75 et cela me donnait un affichage "1,123.45.00"

j'ai ensuite tenté l'idée de Mutzik qui ma fois, pourquoi faire compliqué quand on peut faire simple.
Cela fonctionne parfaitement. Et dire que l'on se prend la tête parfois pour des solutions un peu trop évidente!!!!

Merci à vous de votre aide.

voici le code qui fonctionne:
Code:
Private Sub CommandButton2_Click()
Dim aCpte As Currency, cLient As String

Sheets("Infos").Select
aCpte = TextBox2
'recherhce de la ligne du client pour y mettre le montant de l'accompte
cLient = ComboBox2
cLient = Cells.Find(cLient).Row
Range("I" & cLient) = aCpte

Unload Me
End Sub
 

job75

XLDnaute Barbatruc
Re : Problème de virgule et de point avec Currency

Re,

J'ai testé ton code Job75 et cela me donnait un affichage "1,123.45.00"
Quelle importance puisqu'ensuite l'UserForm est fermé ?

L'important est que dans la cellule on obtienne un nombre correctement formaté.

voici le code qui fonctionne:
Pas si l'on entre un texte erroné dans TextBox2 !

Edit : je n'avais pas vu que vous êtes sur MAC, il peut y avoir des comportements bizarres dans ce cas...

A+
 
Dernière édition:

Gilles52300

XLDnaute Junior
Re : [Résolu] Problème de virgule et de point avec Currency

Job, ce n'est pas dans l'userform que j'ai le nombre formaté, mais bien dans la feuille de calcul.
Oui effectivement entre mac et windows il y a une différence.
Je vais devoir les rectifier, car ce classeur est appelé à tourner sous windows par la suite.
Se sera une autre partie de plaisir en perspective!


Merci encore pour votre aide.
 

job75

XLDnaute Barbatruc
Re : Problème de virgule et de point avec Currency

Job, ce n'est pas dans l'userform que j'ai le nombre formaté, mais bien dans la feuille de calcul.

C'est bien ce que j'ai dit si vous savez ce qu'est une cellule :

L'important est que dans la cellule on obtienne un nombre correctement formaté.

Mais puisqu'il faut mettre les points sur les i voyez le fichier joint avec votre code complété.

A+
 

Pièces jointes

  • Currency(1).xlsm
    29.2 KB · Affichages: 34
Dernière édition:

Gilles52300

XLDnaute Junior
Re : [Résolu] Problème de virgule et de point avec Currency

Bonjour Job,

Ce n'est pas la peine de prendre la mouche,
En étant plus précis, avec votre code, dans la cellule de ma feuille de calcul excel, le formatage du nombre n'est pas correct. il apparait noté comme ceci : 1,123.45.00" au lieu de "1 123,45".

Je ne sais pas trop pourquoi, mais c'est ainsi.
La solution que j'ai adopté est simple, et le risque d'erreur, quoique bien présent, est limité puisqu'il s'agit simplement d'un nombre.

Je pense qu'effectivement l'erreur de formatage peut provenir de la différence entre mac et windows.

Je vous remercie de votre aide et de votre implication sur ce sujet.
 

job75

XLDnaute Barbatruc
Re : [Résolu] Problème de virgule et de point avec Currency

Bonjour Gilles52300,

Sans doute MAC en effet si avec mon fichier vous avez le même problème.

Sinon vérifiez sur le vôtre que la cellule n'est pas au format Texte.

Bonne journée.
 

Discussions similaires

Statistiques des forums

Discussions
312 220
Messages
2 086 381
Membres
103 199
dernier inscrit
ATS1