IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

IHM Discussion :

transformer la virgule du clavier numérique en point


Sujet :

IHM

  1. #1
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Août 2007
    Messages
    45
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2007
    Messages : 45
    Points : 33
    Points
    33
    Par défaut transformer la virgule du clavier numérique en point
    Bonjour

    pour transformer la virgule du clavier numérique en point, j'essaye cette écriture de Cafeine trouvée sur le forum
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Private Sub MonTextBox_KeyPress(KeyAscii As Integer)
        If KeyAscii = 59 Then KeyAscii = 46
    End Sub
    le probleme est qu'elle transforme seulement le point virgule en point, mais pas la virgule du clavier numérique

  2. #2
    Membre expert
    Avatar de mout1234
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    2 210
    Détails du profil
    Informations personnelles :
    Âge : 55
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Novembre 2006
    Messages : 2 210
    Points : 3 228
    Points
    3 228
    Par défaut
    Bonsoir,

    Effectivement, ça n'a pas l'air de marcher...

    Je viens d'essayer ceci:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    Private Sub MonTextBox_KeyDown(KeyCode As Integer, Shift As Integer)
     
    If KeyCode = 110 Then  'le point sur le pavé décimal
        KeyCode = 0            'annule le code saisi
        SendKeys ".", False   'simule la saisie d'un point
    End If
    End Sub
    J'aime pas trop utiliser le SendKeys mais bon... ça semble bien marcher...
    PS: J'avais essayé en mettant KeyCode = 190 (touche ; et . du clavier) mais je n'ai pas trouvé comment le forcer en majuscule ....
    ............................................................................................

    Dans l'intérêt de tous, ne posez pas de questions techniques par messages privés.

  3. #3
    Expert confirmé
    Avatar de vodiem
    Homme Profil pro
    Vivre
    Inscrit en
    Avril 2006
    Messages
    2 895
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Vivre
    Secteur : Conseil

    Informations forums :
    Inscription : Avril 2006
    Messages : 2 895
    Points : 4 325
    Points
    4 325
    Par défaut
    bonjour pierre22 et mout1234,

    tu as raison mout1234 c'est très surprenant, Shift se comporte comme s'il était déclaré en ByVal (variable locale), pourtant la propriété "aperçu des touches" montre qu'elle est bien modifiée mais dans tous les cas cela n'affecte pas le traitement.

    pour le fun, il y a aussi ca sans SendKeys()
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    Private Sub Texte0_Change()
    If InStr(Texte0.Text, ",") Then
        p = Texte0.SelStart
        l = Texte0.SelLength
        Texte0.Text = Replace(Texte0.Text, ",", ".")
        Texte0.SelStart = p
        Texte0.SelLength = l
    End If
    End Sub
    mais si on appui sur la virgule ca met le point.


    ps: normalement on doit jouer sur les paramètres régionaux.

  4. #4
    Membre expert
    Avatar de mout1234
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    2 210
    Détails du profil
    Informations personnelles :
    Âge : 55
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Novembre 2006
    Messages : 2 210
    Points : 3 228
    Points
    3 228
    Par défaut
    Citation Envoyé par vodiem Voir le message
    ...
    ps: normalement on doit jouer sur les paramètres régionaux.
    Salut vodiem,

    On est d'accord... mais il est des situations où l'on ne peut pas (droits utilisateurs insuffisants, volonté de ce dernier de ne pas changer....)


    A+
    Mout
    ............................................................................................

    Dans l'intérêt de tous, ne posez pas de questions techniques par messages privés.

  5. #5
    Expert confirmé
    Avatar de vodiem
    Homme Profil pro
    Vivre
    Inscrit en
    Avril 2006
    Messages
    2 895
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Vivre
    Secteur : Conseil

    Informations forums :
    Inscription : Avril 2006
    Messages : 2 895
    Points : 4 325
    Points
    4 325
    Par défaut
    oui mout1234, j'annotais cela des fois que le cas n'avait pas été pris en compte.

    sinon en réadaptant mon code on peut avoir une procédure pour le pavé numérique, sans sendkeys:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    Private Sub MonTextBox_KeyDown(KeyCode As Integer, Shift As Integer)
     
    If KeyCode = 110 Then  'le point sur le pavé décimal
       If InStr(MonTextBox.Text, ",") Then
           p = MonTextBox.SelStart
           l = MonTextBox.SelLength
           MonTextBox.Text = Replace(MonTextBox.Text, ",", ".")
           MonTextBox.SelStart = p
           MonTextBox.SelLength = l
       End If
    End If
    End Sub
    enfin il faudrait encore adapter si l'on veut que ce soit vraiment la dernière touche enfoncé et conserver la possibilité d'avoir des virgules dans le texte...

    sinon au vu de cette article, il y a une solution de remplacement à sendkeys qui parait inquiétant...

    @+

Discussions similaires

  1. [WD-2010] Faire une virgule avec le point du clavier numérique
    Par beta1204 dans le forum Word
    Réponses: 8
    Dernier message: 12/03/2014, 11h20
  2. Réponses: 28
    Dernier message: 26/01/2014, 13h15
  3. comment utiliser la virgule du clavier numérique pour un userform
    Par cecile_64 dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 23/07/2012, 17h09
  4. Réponses: 11
    Dernier message: 22/07/2009, 21h40
  5. transformer la virgule en point avec format
    Par sundjata dans le forum VB 6 et antérieur
    Réponses: 3
    Dernier message: 25/07/2006, 14h09

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo