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 :

Focus sur textbox après saisie


Sujet :

Macros et VBA Excel

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Mars 2008
    Messages
    19
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2008
    Messages : 19
    Points : 11
    Points
    11
    Par défaut Focus sur textbox après saisie
    Bonjour à tous,

    Dans un userform, j'ai un seul textbox, destiné à saisir un code barre à l'aide d'une douchette, deux labels et deux boutons.

    Ma douchette envoie les chiffres lus sur un code barre, suivi du caractère ENTER.

    Je souhaite que le focus reste sur le seul textbox pour saisir plusieurs codes. Mais le caractère ENTER fait passer le focus sur le bouton suivant. Qu'à celà ne tienne, je met un textbox1.SetFocus qui est censé ramener le focus sur mon textbox. Mais...
    - le setfocus n'a aucun effet. Le focus reste sur le bouton, donc plus de saisie possible, si ce n'est cliquer avec la souris dans le textbox, sauf...
    - en mode pas à pas, dans ce cas, le textbox récupère le focus correctement.

    J'ai essayé de modifier les propriétés de chaque contrôle sans succès.

    Est-ce qu'il y a une explication rationnelle et un contournement possible de ce comportement bizzare ?

    Je met le petit bout de code correspondant :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    Private Sub TextBox1_Change()
     
    If Len(Me.TextBox1.Value) = 9 Then
        CodeBarre = Me.TextBox1.Value
        'lancement du traitement
        CodeBarre = ""
        Me.TextBox1.Value = Null
        Me.TextBox1.SetFocus 'normalement, prêt à recevoir le code suivant
    End If
     
    End Sub
    Merci à ceux-celles qui auront le temps de se pencher sur ce pb.

    Olivier

  2. #2
    Inactif  
    Avatar de ouskel'n'or
    Profil pro
    Inscrit en
    Février 2005
    Messages
    12 464
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 12 464
    Points : 15 543
    Points
    15 543
    Par défaut
    Place ton code dans l'événement Exit de ta textbox
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    Private Sub Textbox1_Exit(ByVal Cancel As MSForms.ReturnBoolean)
    If Len(Me.TextBox1.Value) = 9 Then
        CodeBarre = Me.TextBox1.Value
        'lancement du traitement
        CodeBarre = ""
        Me.TextBox1.Value = Null
        Cancel = True
    End Sub

  3. #3
    Membre à l'essai
    Profil pro
    Inscrit en
    Mars 2008
    Messages
    19
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2008
    Messages : 19
    Points : 11
    Points
    11
    Par défaut
    Merci beaucoup pour la réponse très rapide !

    Effectivement ça marche ainsi. Mais alors, pourquoi le setfocus ne convenait pas dans mon cas ?

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

Discussions similaires

  1. Réponses: 5
    Dernier message: 09/02/2011, 15h45
  2. Focus sur TextBox
    Par Clo72 dans le forum VB 6 et antérieur
    Réponses: 4
    Dernier message: 01/03/2009, 19h17
  3. Focus sur champ de saisie sans JS
    Par parkerlewis dans le forum Balisage (X)HTML et validation W3C
    Réponses: 3
    Dernier message: 29/11/2007, 14h11
  4. [vba-E97] focus sur textbox
    Par stargates dans le forum Macros et VBA Excel
    Réponses: 6
    Dernier message: 10/02/2007, 16h29
  5. [VBA-E] focus sur textbox
    Par stargates dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 29/01/2007, 11h08

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