Problème de saisie de la virgule dans un Textbox

Résolu/Fermé
LANGAZOU Messages postés 95 Date d'inscription vendredi 16 janvier 2015 Statut Membre Dernière intervention 8 novembre 2015 - Modifié par LANGAZOU le 22/02/2015 à 20:15
LANGAZOU Messages postés 95 Date d'inscription vendredi 16 janvier 2015 Statut Membre Dernière intervention 8 novembre 2015 - 23 févr. 2015 à 10:02
Bonjour,

J'ai un textbox dans lequel je saisie uniquement des valeurs numériques. j'ai ajouté récemment sous l'événement textbox change () le séparateur de millier. par conséquent je ne pourrais plus taper la virgule. ci dessous mes deux codes:

Private Sub TextBox1_Change()
 TextBox1 = Format(TextBox1, "# ### ##0")
End Sub


Private Sub TextBox1_KeyPress(ByVal KeyAscii As MSForms.ReturnInteger)
If InStr("1234567890,-", Chr(KeyAscii)) = 0 Then
KeyAscii = 0: Beep
End If



Merci pour votre réponse.

2 réponses

pijaku Messages postés 12263 Date d'inscription jeudi 15 mai 2008 Statut Modérateur Dernière intervention 4 janvier 2024 2 745
23 févr. 2015 à 08:09
Bonjour,

Pourquoi ne pas le placer dans l'événement Exit?
Private Sub TextBox1_Exit(ByVal Cancel As MSForms.ReturnBoolean)
 TextBox1 = Format(TextBox1, "# ### ##0.00")
End Sub


0
LANGAZOU Messages postés 95 Date d'inscription vendredi 16 janvier 2015 Statut Membre Dernière intervention 8 novembre 2015
Modifié par LANGAZOU le 23/02/2015 à 08:42
Bonjour,
c'est parfait ! Merci :)
Juste une dernière question: ya t-il un moyen de prendre en compte le point sous le module keypress et le changer en virgule automatiquement ?

Merci pour votre suivi.
0
f894009 Messages postés 17191 Date d'inscription dimanche 25 novembre 2007 Statut Membre Dernière intervention 20 mai 2024 1 707 > LANGAZOU Messages postés 95 Date d'inscription vendredi 16 janvier 2015 Statut Membre Dernière intervention 8 novembre 2015
23 févr. 2015 à 08:45
Re,

voir:

pijaku - 23 févr. 2015 à 08:18
0
pijaku Messages postés 12263 Date d'inscription jeudi 15 mai 2008 Statut Modérateur Dernière intervention 4 janvier 2024 2 745 > LANGAZOU Messages postés 95 Date d'inscription vendredi 16 janvier 2015 Statut Membre Dernière intervention 8 novembre 2015
23 févr. 2015 à 09:38
Private Sub TextBox1_KeyPress(ByVal KeyAscii As MSForms.ReturnInteger)
    If InStr("1234567890,.-", Chr(KeyAscii)) = 0 Then KeyAscii = 0: Beep: Exit Sub
    Dim sep As String, Autre As String
    sep = Application.International(xlDecimalSeparator)
    Autre = IIf(sep = ",", ".", ",")
    TextBox1 = Replace(TextBox1, Autre, sep)
End Sub
0
LANGAZOU Messages postés 95 Date d'inscription vendredi 16 janvier 2015 Statut Membre Dernière intervention 8 novembre 2015 > pijaku Messages postés 12263 Date d'inscription jeudi 15 mai 2008 Statut Modérateur Dernière intervention 4 janvier 2024
23 févr. 2015 à 10:02
Merci beaucoup pikaju :))
Bonne journée.
0
f894009 Messages postés 17191 Date d'inscription dimanche 25 novembre 2007 Statut Membre Dernière intervention 20 mai 2024 1 707
23 févr. 2015 à 08:13
0
pijaku Messages postés 12263 Date d'inscription jeudi 15 mai 2008 Statut Modérateur Dernière intervention 4 janvier 2024 2 745
Modifié par pijaku le 23/02/2015 à 08:19
Salut f894009,

Je ne suis pas à 100% ok avec la version de kiki29.
Il utilise le "." et la "," indépendamment du séparateur décimal de l'ordinateur...
Je préfère quelque chose comme ceci :

Dim sep As String, Autre As String
sep = Application.International(xlDecimalSeparator)
Autre = IIf(sep = ",", ".", ",")
TextBox1 = Replace(TextBox1, Autre, sep)


A ajouter à la proposition de kiki29, bien sur...
0
f894009 Messages postés 17191 Date d'inscription dimanche 25 novembre 2007 Statut Membre Dernière intervention 20 mai 2024 1 707 > pijaku Messages postés 12263 Date d'inscription jeudi 15 mai 2008 Statut Modérateur Dernière intervention 4 janvier 2024
23 févr. 2015 à 08:23
Bonjour,

Tout a fait, j'en prends note
0
LANGAZOU Messages postés 95 Date d'inscription vendredi 16 janvier 2015 Statut Membre Dernière intervention 8 novembre 2015 > pijaku Messages postés 12263 Date d'inscription jeudi 15 mai 2008 Statut Modérateur Dernière intervention 4 janvier 2024
23 févr. 2015 à 09:20
re bonjour,
je suis débutant en VBA, j'ai pas su combiner votre proposition avec celle de kiki.
Merci.
0