Saisie et format d'un textbox

Salut le forum,

j'aimerais modifier la saisie de mon textbox. Actuellement, je l'oblige à ne prendre que des valeurs numériques mais j'aimerais également avoir la possibilité de saisir un point ou une virgule dans mon textbox. Il sert à enregistrer un montant d'argent.

Voici comment il est affecté jusuq'à maintenant :

Private Sub TXTmontant_Change()

On Error Resume Next

If Not IsNumeric(Right(TXTmontant, 1)) Then

TXTmontant.Text = Left(TXTmontant, Len(TXTmontant) - 1)

End If

End Sub

De plus, lors de la validation de ce dernier, j'aimerais qu'il s'affiche dans un format monétaire à la sortie. Cet affichage se fait dans un label. Le code fonctionne partiellement puisque l'affiche de 900,00$ s'affiche 900$ dans le label.

Voici le code :

Private Sub BTNvalider_Click()

Label5.Caption = Format(TXTmontant.Text, "# ###$")

End Sub

Si je modifie le code pour ceci :

Private Sub BTNvalider_Click()

Label5.Caption = Format(TXTmontant.Text, "# ###,##$")

End Sub

Ça m'affiche 900,$

J'attends donc une correction.

Merci pour votre aide.

bonjour,

moi j'ai :

Private Sub BTNvalider_Click()
Label5.Caption = Format(TXTmontant.Text, "# ###.00$")
End Sub

Private Sub TXTmontant_Change()
On Error Resume Next
If Not IsNumeric(TXTmontant) Then
TXTmontant.Text = Left(TXTmontant, Len(TXTmontant) - 1)
End If
End Sub

...mais j'utilise le séparteur "point". Je suppose qu'avec une virgule, ça fera ton affaire également.

Inutile de tester Right : IsNuméric suffit bien...

A+

Ça fonctionne parfaitement.

Merci galopin

Allez, je relance ce fil.

galopin, pourrais-tu me dire comment tu fais pour utiliser le séparateur "point"? Parce que là, j'entre tous mes montants en me servant du clavier numérique et je dois aller peser sur la virgule à gauche alors que j'ai le point à porter de doigt sur le clavier numérique.

Bonjour,

C'est un peu galère, c'est vrai que le point du pavé numérique n'est pas reconnu comme une virgule dans les TextBox par VBA... Il faudrait redéfinir cette touche ou coder pour remplacer systématiquement le point par une virgule avant de tester isnumeric c'est pourquoi j'ai définitivement opté pour afficher mes nombres avec un point décimal : comme ça je n'ai jamais d'incertitude...

Si tu tiens absolument à conserver ta virgule comme séparateur, tu peux coder comme ça :

Private Sub BTNvalider_Click()
Label1.Caption = Format(TXTmontant.Text, "# ###.00$")
End Sub

Private Sub TXTmontant_Change()
On Error Resume Next
TXTmontant = Replace(TXTmontant, ".", ",")
If Not IsNumeric(TXTmontant) Then
TXTmontant.Text = Left(TXTmontant, Len(TXTmontant) - 1)
End If
End Sub

A+

Encore une fois, c'est A1.

Merci beaucoup pour ton aide.

Bonsoir,

si tu utilises vraiment le . du pavé numérique, ceci te renvoie le nombre :

x = Val(Me.TextBox1)

Bonne soirée

Salut felix,

je ne saisis pas à quoi me servirait le nombre correspondant au point? Ai-je une façon de l'inclure dans mon code pour l'autoriser?

Rechercher des sujets similaires à "saisie format textbox"