XL 2016 Substituer virgule dans TextBox

Goose

XLDnaute Occasionnel
Bonjour,
Je cherche a substituer la virgule par le point au moment de la saisie !!
malheureusement avec le code suivant il n'y a aucune action !!
ou est l'erreur ?
VB:
Private Sub TB_Email_Keypress(ByVal keypress As MSForms.ReturnInteger)
If KeyAscii = 44 Then KeyAscii = 46
End Sub

merci d'avance
 

Eric C

XLDnaute Barbatruc
Bonjour le forum
Bonjour Goose

Essaie ceci, au moins tu ne peux qu'insérer des chiffres ET le point comme séparateur
VB:
Private Sub textBox1_KeyPress(ByVal KeyAscii As MSForms.ReturnInteger)
If Not Chr(KeyAscii) Like "[0-9-.]" Then KeyAscii = 0
End Sub
@+ Eric c
 

mapomme

XLDnaute Barbatruc
Supporter XLD
Bonsoir @Goose, @Eric C,

Le code de @Goose ne fonctionne pas chez moi.
Vous auriez placé en tête de module l’instruction "Option Explicit" qui oblige toute variable à être déclarée avant son utilisation, la compilation de votre code aurait abouti à une erreur sur la variable KeyAscii avec le message "variable non définie".
Et donc en s'interrogeant, on peut se demander pourquoi vous utilisez KeyAscii au lieu de keypress ?
Parce qu'avec KeyPress, ça fonctionne :)
 

mapomme

XLDnaute Barbatruc
Supporter XLD
@Eric C , @Goose :)
Comme quoi, il faut être attentif à tout ou tester.
Au départ, je n'y avais pas prêté attention non plus. Ça m'est arrivé aussi de relire des dizaines de fois mon code et de passer sur "le bug évident", bug qu'un autre découvrira immédiatement à la première lecture. Ça me rappelle les dictées de mon enfance mais nous, sur XLD, on ne donne pas de claque au fautif 😀😃😂
 

Goose

XLDnaute Occasionnel
Bonsoir @Goose, @Eric C,

Le code de @Goose ne fonctionne pas chez moi.
Vous auriez placé en tête de module l’instruction "Option Explicit" qui oblige toute variable à être déclarée avant son utilisation, la compilation de votre code aurait abouti à une erreur sur la variable KeyAscii avec le message "variable non définie".
Et donc en s'interrogeant, on peut se demander pourquoi vous utilisez KeyAscii au lieu de keypress ?
Parce qu'avec KeyPress, ça fonctionne :)
Bonsoir mapomme, a quoi ressemblerai ce code avec keypress ?
 

Eric C

XLDnaute Barbatruc
mapomme veut simplement dire qu'avec l'évènement Keypress (L'évènement keypress est déclenché lorsqu'une touche produisant un caractère est pressée) le code fonctionne à condition que l'argument soit KeyAscii et non Keypress (compliqué comme réponse o_Oo_Oo_O).
 

Eric C

XLDnaute Barbatruc
@mapomme - Malheureux ... Veux tu t'attirer les foudres de quelques lecteurs rétifs. Les élèves peuvent désormais porter plainte (enfin les parents) si l'instituteur (professeur des écoles) porte la main sur un élève. Eh oui, ça c'était avant (j'ai 60 ans et j'ai connu cela et peut être plus (et je n'en suis pas mort...). Bonne soirée
 

mapomme

XLDnaute Barbatruc
Supporter XLD
@Goose,

Il faut une cohérence entre le nommage de l'argument de Sub TB_Email_Keypress
et l'utilisation de la variable dans le corps de la procédure.

Les trois codes suivants fonctionnent :
VB:
Option Explicit

Private Sub TB_Email_Keypress(ByVal keypress As MSForms.ReturnInteger)
   If keypress = 44 Then keypress = 46
End Sub

'ou

Private Sub TB_Email_Keypress(ByVal KeyAscii As MSForms.ReturnInteger)
   If KeyAscii = 44 Then KeyAscii = 46
End Sub

'ou

Private Sub TB_Email_Keypress(ByVal toto As MSForms.ReturnInteger)
   If toto = 44 Then toto = 46
End Sub
 

mapomme

XLDnaute Barbatruc
Supporter XLD
Les élèves peuvent désormais porter plainte (enfin les parents) si l'instituteur (professeur des écoles) porte la main sur un élève.
Moi, je ne disais rien parce que :
  • en général, je l'avais bien cherché et je connaissais les risques (et c'était rarissime)
  • si j'en parlais chez moi, il y avait une grande probabilité de m'en prendre une deuxième
  • et une claque du maitre, ça "posait là" son individu devant les autres
 

Discussions similaires

  • Question
Microsoft 365 TEXTBOX
Réponses
7
Affichages
334
Réponses
20
Affichages
1 K

Statistiques des forums

Discussions
312 215
Messages
2 086 329
Membres
103 184
dernier inscrit
Di Martino