Changement décimale virgule en point à cause de VBA

  • Initiateur de la discussion Initiateur de la discussion rcan7412
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

rcan7412

XLDnaute Occasionnel
Bonjour à tous,

Il a un phénomène que je n'arrive pas à expliquer avec l'utilisation d'excel et VBA.

J'ai parfois un souci avec le point "." et la virgule "," pour l'utilisation des décimales dans les nombres.
Quand j'utilise excel de façon"light", c'est à dire sans utiliser de macro ou du code vba, tout est normal et je ne rencontre aucun problème.

Quand j'utilise des fichiers excel avec du code VBA, après un certain temps, quand je tape sur le point du pavé numérique '.', la virgule ',' de la décimale définie en excel devient un point '.'. Et Excel, ne considère pas le nombre comme un nombre à décimale. Pour rétablir la normale, je suis obligé de redémarrer excel.

Le problème doit sans venir du code vba, mais j'ignore où et comment.

Dans windows dans toute application hors excel, quand je tape le point '.' sur le pavé numérique, j'obtiens le point '.'
Dans Windows (8.1), les options régionales sont : le symbole décimal est la virgule ',' et le groupe de chiffre sur le point '.'.

Quand je suis en excel, quand je tape sur le point '.' du pavé numérique, il m'écrit la virgule ',' pour faire la décimale.
Dans les options avancées d'excel (2013), l'option "utiliser les séparateurs système" est coché avec en grisé :
séparateur de décimale : la virgule ','
séparateur des milliers : le point '.'

Quelqu'un a-t-il déjà rencontré ce problème et comment y remédier ?

Merci d'avance pour toute piste.

Rodolphe
 
Re : Changement décimale virgule en point à cause de VBA

Bonjour Rodolphe,

La raison apparente est que les contrôles TextBox (je pense que c'est dans ceux-ci que le phénomène se produit) interprètent leur valeur comme du texte.

Pour y remédier, il faut que tu crées une macro événementielle du type:

Code:
Private Sub TextBox1_KeyDown(ByVal KeyCode As MSForms.ReturnInteger, ByVal Shift As Integer)
If KeyCode = 188 Then KeyCode = 110
End Sub
Cordialement.
 
Re : Changement décimale virgule en point à cause de VBA

Bonjour Papou-net,

Merci pour ta réponse.

Une précision : quand dois-je activer cette macro ? Car j'ai une série de macros + procédures.
A chaque procédure ?

Cordialement.

Rodolphe
 
Re : Changement décimale virgule en point à cause de VBA

Bonjour Papou-net,

Merci pour ta réponse.

Une précision : quand dois-je activer cette macro ? Car j'ai une série de macros + procédures.
A chaque procédure ?

Cordialement.

Rodolphe

RE:

Tu n'as rien d'autre à faire que d'intégrer cette procédure dans chacun des contrôles concernés.

L'exécution se fera chaque fois qu'une touche de clavier sera pressée dans ces contrôles.

Cordialement.
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

Réponses
8
Affichages
581
Réponses
10
Affichages
87
Réponses
10
Affichages
703
Retour