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

Macros et VBA Excel Discussion :

Retour chariot et Evenement _Keypress [XL-2007]


Sujet :

Macros et VBA Excel

  1. #1
    Membre actif Avatar de ssoltani
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2011
    Messages
    28
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Finance

    Informations forums :
    Inscription : Avril 2011
    Messages : 28
    Points : 237
    Points
    237
    Par défaut Retour chariot et Evenement _Keypress
    Bonjour à tous,

    Je suis entrain de créer un petit programme en VBA qui consiste à réaliser une action lorsque l'on scanne un code barre avec un stylo numérique.

    1°) J'ai une zone de texte qui se nomme : tbx_InsertValues.
    2°) J'ai un stylo numérique, et une série de feuille avec un code barre.
    3°) Je voudrais scanner ce code barre, avec ce stylo numérique.
    4°) En scannant le code barre, le numéro scanné est mis automatiquement dans la zone de texte du 1°).

    Supposons que le numéro scanné est le suivant : ABCDEFGHIJKLMNOPQRSTU.
    Lorsque je scanne avec mon stylo, il saisit dans le textbox le numéro ci dessus avec un retour chariot supplémentaire.

    Dés que ce retour chariot est détecté, il doit vider la zone de texte.

    La question est : Comment détecter ce retour chariot, j'ai l'impression que l'évènement _KeyPress ne comprend pas le retour chariot.

    Afin de combler à cela, je compte le nombre de caractère (24 en tout) mais si vous avez la solution pour détecter ce fameux retour chariot, je suis preneur.

    Mon programme à l'heure actuelle :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
    Option Explicit
    Public Resultat As Integer = 0
    Private Sub tbx_InsertValues_KeyPress(ByVal KeyAscii As MSForms.ReturnInteger)
        Resultat = Resultat + 1
        If Not Resultat < 23 Then
            tbx_InsertValues.Value = tbx_InsertValues.Value & Chr(KeyAscii)
            InsertValues
            ValidInsert
            Resultat = 0
            KeyAscii = 0
        End If
    End Sub

  2. #2
    Expert éminent Avatar de jfontaine
    Homme Profil pro
    Contrôleur de Gestion
    Inscrit en
    Juin 2006
    Messages
    4 756
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : France, Sarthe (Pays de la Loire)

    Informations professionnelles :
    Activité : Contrôleur de Gestion

    Informations forums :
    Inscription : Juin 2006
    Messages : 4 756
    Points : 9 402
    Points
    9 402
    Par défaut
    Bonjour,

    La question est : Comment détecter ce retour chariot, j'ai l'impression que l'évènement _KeyPress ne comprend pas le retour chariot.
    Voici ce que dit l'aide d'excel a propos de l’évènement Keypress

    Un événement KeyPress ne se déclenche pas lorsque l'utilisateur appuie sur l'une des touches suivantes :

    TAB.

    ENTRÉE.

    Une touche de direction.

    Une touche qui déplace le focus d'un contrôle à un autre.

  3. #3
    Membre actif Avatar de ssoltani
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2011
    Messages
    28
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Finance

    Informations forums :
    Inscription : Avril 2011
    Messages : 28
    Points : 237
    Points
    237
    Par défaut Réponse
    Re-Bonjour,

    J'ai trouvé.

    Il existe plusieurs évènements sur les touches.

    _KeyPress = Événement qui se déclenche dés que l'on appuie sur une touche. Cependant, cette évènement ne récupère que des touches caractère Alphanumérique et non les touches d'actions tels que (Carriage return, back,...)

    _KeyDown = Événement qui se déclenche quand on appuie sur une touche mais avant que l'action se produise

    _KeyUp = Événement qui exécute une action, c'est donc celle qui me correspondait.

    Voici la solution :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    Private Sub tbx_InsertValues_KeyUp(ByVal KeyCode As MSForms.ReturnInteger, ByVal Shift As Integer)
        If KeyCode = 13 Then
            Application.ScreenUpdating = False
            InsertValues
            ValidInsert
            Application.ScreenUpdating = True
        End If
    End Sub

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

Discussions similaires

  1. retour chariot GetWindowText
    Par johnlehardos dans le forum MFC
    Réponses: 2
    Dernier message: 29/01/2004, 21h20
  2. Retour chariot
    Par raf_gug dans le forum MFC
    Réponses: 9
    Dernier message: 13/01/2004, 17h54
  3. afficher texte avec retour chariot aprèq requète sql
    Par frenchy371 dans le forum Requêtes
    Réponses: 2
    Dernier message: 07/01/2004, 17h33
  4. retour chariot dans un string
    Par bono dans le forum MS SQL Server
    Réponses: 2
    Dernier message: 29/12/2003, 12h17
  5. Retour chariot dans un TMemo ?
    Par Vincent PETIT dans le forum C++Builder
    Réponses: 7
    Dernier message: 27/08/2002, 18h55

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