XL 2016 Format dans un textbox

halecs93

XLDnaute Impliqué
Bonjour et rebonjour,

Dans mon Textbox4 de l'userform2 tout semble fonctionner maintenant. Mais... lorsque j'y saisi un nombre, il n'accepte pas que je le fasse avec le pavé numérique (ex 2.00) et m'oblige à le faire en utilisant la virgule (2,00).

Y'a-t-il un moyen de permettre l'utilisation du point du pavé numérique qui se "transformerait" automatiquement en virgule ?

Je ne sais pas si je suis très clair ;)

Merci
 

Pièces jointes

  • COMMANDE TEST v10.xlsm
    41 KB · Affichages: 3

vgendron

XLDnaute Barbatruc
Hello

bizarre.. chez moi. que j'utilise le pavé numérique ou la virgule du clavier.. les deux passent..
maintenant.. à savoir

sur le clavier tu as bien une touche pour le point et une pour la virgule.. ca. c'est international
ensuite le pavé numérique: la touche point , à mon avis ne devrait s'appeler "SepNum" comme séparateur numérique
et cette touche inscrit un point OU une virgule. selon les paramètres régionaux de ton pc

perso, dès que j'ai un nouveau PC, je bascule les paramètres pour avoir le point comme séparateur numérique
et je demande à office d'appliquer les meme paramètres que windows

ensuite.. il me semble que tu peux "forcer" et définir le séparateur que tu souhaites avec
Application.DecimalSeparator = "."
 

fanch55

XLDnaute Barbatruc
Salut à tous,
Le Decimalseparator est spécifique au système local ou aux options Excel .

Si vous ne voulez pas imposer celui-ci,
vous pouvez faire dans le code avant calcul ou transpo :

Me.TextBox4 = Replace(Me.TextBox4, ".", Application.DecimalSeparator)
Me.TextBox4 = Replace(Me.TextBox4, ",", Application.DecimalSeparator)
 

vgendron

XLDnaute Barbatruc
hello @fanch55

@halecs93
il faudrait que tu ajoutes ce code
VB:
Private Sub TextBox3_AfterUpdate()
If Not IsNumeric(Me.TextBox3) Then
    MsgBox "Seule la saisie de numérique est autorisée"
    Me.TextBox3 = ""
End If
UpdatePrixTotal
End Sub
Private Sub TextBox4_AfterUpdate()
If Not IsNumeric(Me.TextBox4) Then
    MsgBox "Seule la saisie de numérique est autorisée"
    Me.TextBox4 = ""
End If
UpdatePrixTotal
End Sub
Sub UpdatePrixTotal()
If Me.TextBox3 <> "" And Me.TextBox4 <> "" Then
    Me.TextBox5 = Me.TextBox3 * Me.TextBox4
End If
End Sub
 

halecs93

XLDnaute Impliqué
hello @fanch55

@halecs93
il faudrait que tu ajoutes ce code
VB:
Private Sub TextBox3_AfterUpdate()
If Not IsNumeric(Me.TextBox3) Then
    MsgBox "Seule la saisie de numérique est autorisée"
    Me.TextBox3 = ""
End If
UpdatePrixTotal
End Sub
Private Sub TextBox4_AfterUpdate()
If Not IsNumeric(Me.TextBox4) Then
    MsgBox "Seule la saisie de numérique est autorisée"
    Me.TextBox4 = ""
End If
UpdatePrixTotal
End Sub
Sub UpdatePrixTotal()
If Me.TextBox3 <> "" And Me.TextBox4 <> "" Then
    Me.TextBox5 = Me.TextBox3 * Me.TextBox4
End If
End Sub
C'est intéressant, mais en utilisant ce code, lorsque je rentre une valeur du type 2.10 (donc avec le point), je reçois le message "Seule la saisie numérique est autorisée".... or, je souhaiterais qu'on puisse entrer ce format et qu'il se transforme "automatiquement" en 2,10 (avec la virgule)
 

Discussions similaires

Réponses
7
Affichages
3 K

Statistiques des forums

Discussions
314 422
Messages
2 109 447
Membres
110 482
dernier inscrit
ilyxxxh