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

VBA Access Discussion :

remplacer un point par une virgule en saisie sur un PC portable sans pavé numérique ? [AC-2007]


Sujet :

VBA Access

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Profil pro
    Inscrit en
    Septembre 2007
    Messages
    685
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2007
    Messages : 685
    Par défaut remplacer un point par une virgule en saisie sur un PC portable sans pavé numérique ?
    Bonjour,
    j'ai une zone texte correspondant à une qté. La base est utilisée sur un ordinateur portable sans pavé numérique. J'ai trouvé ce code dans la FAQ mais il ne marche pas dans mon cas. Je me mets en majuscule pour faire ma saisie des précédents champs, puis j'arrive dans le champs Qté (je suis donc toujours en majuscule) et je saisi mon nombre.

    Exemple : je veux "12,23". 2 possibilités :
    je tape 12.23 : le point apparait bien puisque je suis en majuscule mais je veux qu'il devienne une virgule
    alors ce code VBA, il devient un "?" (puisque je suis en majuscule)

    si je veux taper "12,23", comme je suis en majuscule, cela écrit "12?23"

    Je suis avec des utilisateurs qui ne maîtrisent pas du tout l'informatique, le simple jonglage en saisie avec la touche SHIFT n'est pas une solution facile pour eux (Attention, je ne critique pas !! J'estime que c'est à la machine de s'adapter.... surtout jute pour un petit truc comme ça)

    voici le code issus de la FAQ:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    Private Sub QUANTITE_KeyDown(KeyCode As Integer, Shift As Integer)
     
    If (KeyCode = 190) Then
        KeyCode = 188
    End If
     
    End Sub
    Auriez-vous une solution ?

    Merci

  2. #2
    Membre Expert Avatar de curt
    Homme Profil pro
    Ingénieur Etudes
    Inscrit en
    Mars 2006
    Messages
    1 579
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur Etudes
    Secteur : Bâtiment Travaux Publics

    Informations forums :
    Inscription : Mars 2006
    Messages : 1 579
    Par défaut
    Bonsoir Tibofo,

    pourquoi ne pas utiliser le point décimal ??? Il est valide si tu es en majuscules activées.

    (Il faut aller dans le panneau de configuration et les régléges régionaux.)

    Curt

  3. #3
    Membre Expert
    Homme Profil pro
    Inscrit en
    Juillet 2006
    Messages
    1 219
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 80
    Localisation : France

    Informations professionnelles :
    Secteur : Services à domicile

    Informations forums :
    Inscription : Juillet 2006
    Messages : 1 219
    Par défaut
    bonsoir,
    si le ? ne gène pas tes utilisateurs, tu peux mettre sur un évènement le code suivant par ex:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    Private Sub MonChamp_AfterUpdate()
    x = Replace(Me.MonChamp, "?", ",")
    Me.MonChamp = CDbl(x)
     
    End Sub

  4. #4
    Expert confirmé
    Avatar de LedZeppII
    Homme Profil pro
    Maintenance données produits
    Inscrit en
    Décembre 2005
    Messages
    4 485
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Maintenance données produits
    Secteur : Distribution

    Informations forums :
    Inscription : Décembre 2005
    Messages : 4 485
    Par défaut
    Bonjour,

    Essaie avec l'événement "Sur touche activée"
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    Private Sub QUANTITE_KeyPress(KeyAscii As Integer)
       ' 46 = code ascii de "."
       ' 44 = code ascii de ","
       If KeyAscii = "46" Then KeyAscii = "44"
    A+

  5. #5
    Membre éclairé
    Profil pro
    Inscrit en
    Septembre 2007
    Messages
    685
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2007
    Messages : 685
    Par défaut
    Bonsoir,
    Je ne comprends pas : Access semble ne pas prendre ce code
    KeyAscii.


    Moi quand je presse la touche "." (sur le clavier, celle qui est en dessous du K et du L), KeyAscII= 190

    et si j'enlève la majuscule, c'est le code 188 (pour la touche virgule)

    Par contre, si je mets :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    If KeyAscii = "190" Then KeyAscii = "188"
    Là cela ne marche pas, car pour taper mes chiffres, je suis obligé de me mettre en majuscule. Donc qd je tape le ".", Access me met le "?"

    Un truc de fou.

    Y'a t-il un moyen de lui dire "passe en minuscule, affiche le "," puis repasse en majuscule ???


    Merci

  6. #6
    Expert confirmé
    Avatar de LedZeppII
    Homme Profil pro
    Maintenance données produits
    Inscrit en
    Décembre 2005
    Messages
    4 485
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Maintenance données produits
    Secteur : Distribution

    Informations forums :
    Inscription : Décembre 2005
    Messages : 4 485
    Par défaut
    Bonsoir,

    Il ne s'agit pas du même événement.
    Dans la faq c'est l'événement "sur touche appuyée"
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Private Sub Controle_KeyDown(KeyCode As Integer, Shift As Integer)
    Keycode est le code de la touche sur le clavier. Cette touche peut générer plus d'un caractère.


    Moi je parle de l'événement "sur touche activée"
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Private Sub Controle_KeyPress(KeyAscii As Integer)
    KeyAscii est le code du caractère généré par la touche du clavier.

    A+

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Remplacer un point par une virgule
    Par AJ_ing dans le forum Excel
    Réponses: 7
    Dernier message: 25/06/2012, 20h36
  2. [PROC] Remplacer un point par une virgule dans une Proc Tabulate
    Par PAULOM dans le forum SAS Base
    Réponses: 2
    Dernier message: 20/08/2009, 08h36
  3. remplacement du point par une virgule
    Par thierry007 dans le forum Windows Forms
    Réponses: 13
    Dernier message: 13/05/2009, 20h11
  4. remplacer un point par une virgule
    Par paolo2002 dans le forum Général JavaScript
    Réponses: 6
    Dernier message: 25/04/2008, 09h43
  5. [C#] Remplacer un point par une virgule
    Par SLicTa dans le forum Windows Forms
    Réponses: 6
    Dernier message: 03/01/2008, 13h08

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