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 :

[VBA-E]Changer de focus


Sujet :

Macros et VBA Excel

  1. #1
    Membre éclairé
    Profil pro
    Inscrit en
    Février 2006
    Messages
    932
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France

    Informations forums :
    Inscription : Février 2006
    Messages : 932
    Par défaut [VBA-E]Changer de focus
    coucou,

    j'ai un userform avec 2 textbox.

    j'aimerai que lorsque l'on est dans le textbox1, quand on press sur tab, que le curseur aille dans le textbox2

    j'avais trouvé keypress ca erssemblait à mon attente mais bon...


    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.
    Un petite piste?

  2. #2
    Inactif  
    Avatar de jmfmarques
    Profil pro
    Inscrit en
    Décembre 2005
    Messages
    3 784
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2005
    Messages : 3 784
    Par défaut
    Evénement keydown
    Keycode
    pour tab : keycode = 9

  3. #3
    Membre éclairé
    Profil pro
    Inscrit en
    Février 2006
    Messages
    932
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France

    Informations forums :
    Inscription : Février 2006
    Messages : 932
    Par défaut
    ok merci

    mais je comprend pas comment l'utiliser, dans l'aide leur exemple correspond pas du tout à ce que je cherche à faire

    J'ai testé de mettre ce code dans ma userform (biensur ca ne va pas)

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    Private Sub object_KeyDown(ByVal KeyCode As MSForms.ReturnInteger, ByVal Shift As fmShiftState)
        responsivness.TextBox2.SetFocus
    End Sub
    où dois je utiliser la valeur "9" ? et à quoi correspond le second parametre "Shift"? la encore je comprend pas l'explication de l'aide...

  4. #4
    Inactif  
    Avatar de jmfmarques
    Profil pro
    Inscrit en
    Décembre 2005
    Messages
    3 784
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2005
    Messages : 3 784
    Par défaut
    Ah !
    Est-ce si difficile de dire que si keycode = 9 alors je donne le focus à machin_contrôle ?
    quant à Shift (pression sur la touche Maj en même temps) tu n'as pas à t'en préoccuper ici, ma foi !

  5. #5
    Membre éclairé
    Profil pro
    Inscrit en
    Février 2006
    Messages
    932
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France

    Informations forums :
    Inscription : Février 2006
    Messages : 932
    Par défaut
    ok merci

    jverrais ca lundi parce que là...

    Ca y'est c'est le week end !!!!!!!! ( )

  6. #6
    Inactif  
    Avatar de jmfmarques
    Profil pro
    Inscrit en
    Décembre 2005
    Messages
    3 784
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2005
    Messages : 3 784
    Par défaut
    OK Elstak !
    Mais d'ici là :
    un petit truc : keyDown te permet également d'utiliser les flêches (et c'est encore mieux que tab)
    pour connaître le code Keycode des flêches ? Fastoche : dans un événement Keydown : msgbox keycode.... tu appuies sur une flêche... et tu en connais le code (valable pour une textbox)Et, si tu es malin, tu joues avec les flêches haute, gauche, droite et basse pour naviguer comme tu l'entends !

  7. #7
    Membre émérite
    Avatar de Catbull
    Profil pro
    Inscrit en
    Avril 2003
    Messages
    542
    Détails du profil
    Informations personnelles :
    Âge : 47
    Localisation : France

    Informations forums :
    Inscription : Avril 2003
    Messages : 542
    Par défaut
    Ou plus lisiblement utiliser les constantes définis dans le module KeyCodeConstants.

    Avec l'automation c'est facile de retrouver ces constantes :

    KeyCodeConstants.vbKeyDown
    KeyCodeConstants.vbKeyUp
    KeyCodeConstants.vbKeyTab
    Etc...

    Il n'est pas obligatoire d'utiliser KeyCodeConstants. On peut directement tapper le nom des constantes (mais plus d'automation) :

    vbKeyDown
    vbKeyUp
    vbKeyTab

  8. #8
    Modérateur
    Avatar de AlainTech
    Homme Profil pro
    Consultant informatique
    Inscrit en
    Mai 2005
    Messages
    4 235
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 71
    Localisation : Belgique

    Informations professionnelles :
    Activité : Consultant informatique
    Secteur : Finance

    Informations forums :
    Inscription : Mai 2005
    Messages : 4 235
    Par défaut
    Je ne comprends pas bien pourquoi il faudrait jouer avec des KeyJeNeSaisQuoi alors que c'est tout à fait intégré dans le comportement d'un UserForm:

    Citation Envoyé par L'aide en ligne

    TabKeyBehavior Property

    Determines whether tabs are allowed in the edit region.

    Syntax

    object.TabKeyBehavior [= Boolean]


    The TabKeyBehavior property syntax has these parts:

    Part Description

    object Required. A valid object.
    Boolean Optional. The effect of pressing TAB.


    Settings

    The settings for Boolean are:

    Value Description

    True Pressing TAB inserts a tab character in the edit region.
    False Pressing TAB moves the focus to the next object in the tab order (default).


    Remarks

    The TabKeyBehavior and MultiLine properties are closely related. The values described above only apply if MultiLine is True. If MultiLine is False, pressing TAB always moves the focus to the next control in the tab order regardless of the value of TabKeyBehavior.
    The effect of pressing CTRL+TAB also depends on the value of MultiLine. If MultiLine is True, pressing CTRL+TAB creates a new line regardless of the value of TabKeyBehavior. If MultiLine is False, pressing CTRL+TAB has no effect.

    Copyright(c) 1996 Microsoft Corporation.
    Il suffit juste de mettre le bon TabIndex dans chaque contrôle.
    N'oubliez pas de cliquer sur quand vous avez obtenu ou trouvé vous-même la réponse à votre question.
    Si vous trouvez seul, pensez à poster votre solution. Elle peut servir à d'autres!
    Pensez aussi à voter pour les réponses qui vous ont aidés.
    ------------
    Je dois beaucoup de mes connaissances à mes erreurs!

  9. #9
    Membre Expert
    Avatar de sovo
    Homme Profil pro
    Développeur Java
    Inscrit en
    Mars 2004
    Messages
    1 389
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Cameroun

    Informations professionnelles :
    Activité : Développeur Java
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2004
    Messages : 1 389
    Par défaut
    oui c'est vrai on peut le faire directement (et automatiquement) en mettant le bon tabindex (probleme resolu pour tab) et pour entrer et les touches directionnelles comment tu geres cela ?? code oblige.

    pour ma part je partirais plutot avec un keypress.

  10. #10
    Modérateur
    Avatar de AlainTech
    Homme Profil pro
    Consultant informatique
    Inscrit en
    Mai 2005
    Messages
    4 235
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 71
    Localisation : Belgique

    Informations professionnelles :
    Activité : Consultant informatique
    Secteur : Finance

    Informations forums :
    Inscription : Mai 2005
    Messages : 4 235
    Par défaut
    Je me réfère juste au contenu de la question originale et pas de toutes les dérives qui en ont suivi.
    N'oubliez pas de cliquer sur quand vous avez obtenu ou trouvé vous-même la réponse à votre question.
    Si vous trouvez seul, pensez à poster votre solution. Elle peut servir à d'autres!
    Pensez aussi à voter pour les réponses qui vous ont aidés.
    ------------
    Je dois beaucoup de mes connaissances à mes erreurs!

  11. #11
    Membre Expert
    Avatar de sovo
    Homme Profil pro
    Développeur Java
    Inscrit en
    Mars 2004
    Messages
    1 389
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Cameroun

    Informations professionnelles :
    Activité : Développeur Java
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2004
    Messages : 1 389
    Par défaut
    a moins de me trompe de discution (et j'en doute fort), voici la question originnale

    Citation Envoyé par Elstak
    coucou,

    j'ai un userform avec 2 textbox.

    j'aimerai que lorsque l'on est dans le textbox1, quand on press sur tab, que le curseur aille dans le textbox2

    j'avais trouvé keypress ca erssemblait à mon attente mais bon...

    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.
    Un petite piste?
    et je vois apparaitre le "ENTREE" et les "touches directionnelles".

  12. #12
    Inactif  
    Avatar de jmfmarques
    Profil pro
    Inscrit en
    Décembre 2005
    Messages
    3 784
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2005
    Messages : 3 784
    Par défaut
    Le seul problème est que, dans certaines applications, on peut vouloir établir, pour faire face à une situation, un setfocus différent de celui prévu dans l'ordre des tabindex. Celà peut, entre autres, arriver avec des applications relatives à l'état-civil. Une incohérence relevée ici ou là doit quelquefois carrément "ramener" en arrière au contrôle (textbox en général, mais aussi listbox quelquefois) à modifier (situations provoquées par la découverte d'un âge, par exemple, ne permettant pas de continuer une saisie cohérente). La réaction du tab doit alors répondre à une logique différente de l'ordre des tabindex et celà se fait avec des expressions conditionnelles.

  13. #13
    Modérateur
    Avatar de AlainTech
    Homme Profil pro
    Consultant informatique
    Inscrit en
    Mai 2005
    Messages
    4 235
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 71
    Localisation : Belgique

    Informations professionnelles :
    Activité : Consultant informatique
    Secteur : Finance

    Informations forums :
    Inscription : Mai 2005
    Messages : 4 235
    Par défaut
    Je vais finir par me demander si je lis bien...

    La question:
    Citation Envoyé par Elstak
    j'ai un userform avec 2 textbox.

    j'aimerai que lorsque l'on est dans le textbox1, quand on press sur tab, que le curseur aille dans le textbox2
    Une piste:
    Citation Envoyé par Elstak
    j'avais trouvé keypress ca erssemblait à mon attente mais bon...
    Une désilusion:
    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.
    N'oubliez pas de cliquer sur quand vous avez obtenu ou trouvé vous-même la réponse à votre question.
    Si vous trouvez seul, pensez à poster votre solution. Elle peut servir à d'autres!
    Pensez aussi à voter pour les réponses qui vous ont aidés.
    ------------
    Je dois beaucoup de mes connaissances à mes erreurs!

  14. #14
    Inactif  
    Avatar de jmfmarques
    Profil pro
    Inscrit en
    Décembre 2005
    Messages
    3 784
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2005
    Messages : 3 784
    Par défaut
    C'est pour celà qu'existe keyDown
    et que keycode et keyascii sont deux choses différentes (keyascii pour keypress, sans reconnaissance du tab, etc...) et keycode avec Keydown(pour le tab etc...)

  15. #15
    Membre éclairé Avatar de riesseg
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    415
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2006
    Messages : 415
    Par défaut
    je sais pas comment c'est sous vba...

    Mais sous vb6, il le fait automatiquement et il suis en fonction de l'attribut TabIndex.

    1 = ou ce place le focus quand la page s'affiche
    2 = ou il ira si je fais tab
    3 = si je suis sur 2 et je fais tab...

    etc

  16. #16
    Membre Expert
    Avatar de sovo
    Homme Profil pro
    Développeur Java
    Inscrit en
    Mars 2004
    Messages
    1 389
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Cameroun

    Informations professionnelles :
    Activité : Développeur Java
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2004
    Messages : 1 389
    Par défaut
    cette methode riesseg

    n'est valable que pour le tab et si je veux utiliser le ENTRER pour passer au controle suivant (meme philosophie que tab, donc ..), mais si aussi je voulais aller au controle precedent, au celui de gauche ou droite comment je fait ??

  17. #17
    Membre éclairé Avatar de riesseg
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    415
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2006
    Messages : 415
    Par défaut
    pour aller au precedent ??

    y'a un truc, pas si connus que ca, mais implementer sous win, linux, et dans tous les logiciels de fait...

    SHIFT + Tab :p

    Apres j'sais pas pour les fleches de cotes... sur la, il faut le OnKeyPRess.

    Mais etant donné la demande
    j'aimerai que lorsque l'on est dans le textbox1, quand on press sur tab, que le curseur aille dans le textbox2
    J'crois que mon truc est achement plus simple que vos KeyPress ^^
    Moi c'est du 0 code ( si y'a le mme attribut sur VBA )

  18. #18
    Inactif  
    Avatar de jmfmarques
    Profil pro
    Inscrit en
    Décembre 2005
    Messages
    3 784
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2005
    Messages : 3 784
    Par défaut
    Pour moi : il s'agit de voyager de contrfôle en contrôle en utilisant les tab, flêches etc... sans nécessairement avoir quitté le contrôle !
    Keydown esiste-t-il ou nnon, en VBA ?
    Si oui, je fais un exemple en vitesse et chacun comprendra !
    Si non : tout tombe à l'eau !

    EDIT : que suis-je distrait !
    un exemple tout fait avec VB ici :
    http://jmarques.developpez.com/sourc...degres1et2.zip
    les flêches permettront de naviguer de textbox en textbos et le tab de contrôle en contrôle (tous les contrôles)

  19. #19
    Membre Expert
    Avatar de sovo
    Homme Profil pro
    Développeur Java
    Inscrit en
    Mars 2004
    Messages
    1 389
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Cameroun

    Informations professionnelles :
    Activité : Développeur Java
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2004
    Messages : 1 389
    Par défaut
    Citation Envoyé par riesseg
    SHIFT + Tab
    en fait le probleme de notre ami est d'implementer aussi ca dans son application.

  20. #20
    Inactif  
    Avatar de jmfmarques
    Profil pro
    Inscrit en
    Décembre 2005
    Messages
    3 784
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2005
    Messages : 3 784
    Par défaut
    voir mon edit et commencer à comprendre les différences et ce que ce traitement peut gérer

+ Répondre à la discussion
Cette discussion est résolue.
Page 1 sur 2 12 DernièreDernière

Discussions similaires

  1. [VBA-E] Changer un format de cellule
    Par Squelet dans le forum Macros et VBA Excel
    Réponses: 14
    Dernier message: 06/02/2006, 17h36
  2. [VBA EXCEL] changer la couleur du texte de cellules
    Par dume75 dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 05/02/2006, 23h08
  3. [VBA][Excel] Changer la source d'un graphique
    Par titflocon dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 25/10/2005, 11h40
  4. [Focus] changer le focus sur "entree"
    Par sylvain_2020 dans le forum AWT/Swing
    Réponses: 10
    Dernier message: 16/12/2004, 19h07
  5. [C#] Changer le focus avec la touche return
    Par sblanc74 dans le forum Windows Forms
    Réponses: 6
    Dernier message: 01/10/2003, 18h38

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