Changement décimale virgule en point à cause de VBA

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
 

Papou-net

XLDnaute Barbatruc
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.
 

rcan7412

XLDnaute Occasionnel
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
 

Papou-net

XLDnaute Barbatruc
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.
 

Discussions similaires

Membres actuellement en ligne

Statistiques des forums

Discussions
312 229
Messages
2 086 426
Membres
103 206
dernier inscrit
diambote