Transformer un point en virgule dans un textbox

bartelele

XLDnaute Junior
Bonjour à tous :)

Voici mon contexte, j'ai un userform avec trois champs libres que l'utilisateur remplit.
Il s'agit du nombre de pièces rebutées, retouchées, retournées, donc de valeur numérique.
Pour cela je met des contrôles, si la valeur n'est pas numérique, op msgbox, on efface et on recommence (la valeur étant utilisée pour une addition il ne faut pas d'erreur de saisi).

Mon problème est que bien souvent l'utilisateur va utiliser le pavé numérique pour entrer les données et donc mettre un point au lieu d'une virgule (ndlr: la valeur peut être décimale) de ce fait je voulais changer mon point automatiquement en virgule via le keycode, mais bon je n'y arrive pas :(

Merci de votre aide :)
 

Pièces jointes

  • Classeur1.xls
    25.5 KB · Affichages: 131
  • Classeur1.xls
    25.5 KB · Affichages: 139
  • Classeur1.xls
    25.5 KB · Affichages: 121

Pierrot93

XLDnaute Barbatruc
Re : Transformer un point en virgule dans un textbox

Bonjour,

essaye ceci, à utiliser dans le module de l'usf ou de la feuile où se trouve ton "textbox" :

Code:
Private Sub TextBox1_KeyPress(ByVal KeyAscii As MSForms.ReturnInteger)
    If KeyAscii = 46 Then KeyAscii = 44
End Sub
bonne fin d'après midi
@+

Edition : bonjour Jean-Marcel
 

ERIC S

XLDnaute Barbatruc
Re : Transformer un point en virgule dans un textbox

Bonjour

peut-être sous cette forme

Code:
If IsNumeric(Me.TB_Qte_rebutee) = False Then
If Right(Me.TB_Qte_rebutee, 1) = "." Then
    Me.TB_Qte_rebutee = Left(Me.TB_Qte_rebutee, Len(Me.TB_Qte_rebutee) - 1) & ","
Else
    MsgBox "La valeur entrée doit être numérique ou , pour les décimales"
    Me.TB_Qte_rebutee.Value = ""
End If
End If

que de rapidité vous tous!
 

Pierrot93

XLDnaute Barbatruc
Re : Transformer un point en virgule dans un textbox

Re,

pour info, la fonction "val" n'accepte que le point comme séparateur de décimale, ci-dessous extrait de l'aide vba :
Note La fonction Val ne reconnaît que le point comme séparateur décimal (.). Lors de l'utilisation d'autres séparateurs décimaux (applications internationales, par exemple), convertissez la chaîne en nombre à l'aide de la fonction CDbl.
 

Discussions similaires

Membres actuellement en ligne

Statistiques des forums

Discussions
312 505
Messages
2 089 070
Membres
104 020
dernier inscrit
Mzghal