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

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  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 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".

  8. #8
    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.

  9. #9
    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!

  10. #10
    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...)

  11. #11
    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

  12. #12
    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 ??

  13. #13
    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 )

  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
    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)

  15. #15
    Membre Expert
    Avatar de zazaraignée
    Profil pro
    Étudiant
    Inscrit en
    Février 2004
    Messages
    3 174
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Février 2004
    Messages : 3 174
    Par défaut
    Salut tout l'monde

    Extraordinaire, le débat!

    Est-ce qu'un de vous a pensé à demander à Elstak ce qu'il voulait faire au juste?

    Citation Envoyé par Elstak
    j'aimerai que lorsque l'on est dans le textbox1, quand on press sur tab, que le curseur aille dans le textbox2
    Pour passer de textbox1 à textbox2... hum! C'est peut-être seulement un cas d'ordre de tabulation... Vous en êtes à la troisième page, les mecs! Surtout qu'on n'a pas relu Elstak depuis la page 1. À moins que je ne me trompe... y'a longtemps que c'est résolu!

  16. #16
    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
    C'est ce que j'ai essayé de dire mais il y en a qui s'obstinent à vouloir donner une réponse compliquée à une question simple.
    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!

  17. #17
    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
    Par défaut
    Hello vous deux, je vois que vous êtes toujours sur le pont...
    Je suis assez d'accord avec vous... mais vous connaissez pas "Erzatz"... C'est le genre de gars pour à avoir renommé TextBox1 en textBox2 et inversement rien que pour se compliquer la vie et avoir le plaisir de poser une question sur le forum L'aime bien dialoguer...
    Bref, ainsi il a toute la philosophie de la chose, aussi bien sur VB6 que sur VBA.
    Ensuite, son plaisir, c'est de lancer des questions et d'aller se coucher rien que pour voir...
    Citation Envoyé par Parce que... il
    ok merci

    jverrais ca lundi parce que là...

    Ca y'est c'est le week end !!!!!!!! ( )
    Bonne nuit à tous

  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
    Bonjour tout le monde,

    Non, je ne pense pas que cette discussion a été inutile, bien au contraire.
    Je devine même (mais il nous le dira) que les 2 Textboxes d'Elstak ne sont pas côte à côte et que le voyage de l'une vers l'autre est conditionnel et dépend même, peut-être, d'autres contrôles encore (optionbuttons, checkboxes, listboxes,... par exemple).

    A vrai dire, il peut s'agir là d'une chose assez complexe dans certains cas de figure.

    Je pense même qu'il s'agit là d'un aspect à ce point important (celui des saisies logiques contrôlées) que je vais m'attacher à construire une appli de démonstration sur ce thème (avec utilisation des fameux tableaux "miroirs"), assortie d'un maximum de commentaires, et à la proposer pour la page sources. C'est, vous le verrez, un point non dénué d'intérêt. Nous y verrons comment traiter dans la même foulée les saisies "obligatoires", "obligatoires si", "interdites si", "facultatives si", "liées", etc...avec évolution possible de ces caractéristiques au fur et à mesure de la saisie.... (enfin, tout le tintsoin classique des saisies à logique contrôlée tout au long de l'utilisation de l'appli), avec le minimum de code. Je n'irai pas jusqu'à l'inhibition de la souris (pour ne faire courir aucun risque en cas d'interruption brutale), mais ferai en sorte que toute tentative de l'utiliser pour se rendre "où" il ne faut pas" s'avère vaine. (tiens ! une tisane ! ... je ne l'ai pas fait exprés, )

    Une question (je n'ai pas vba moderne) en vue de traiter certains cas particuliers : la propriété tag existe-t-elle pour les contrôles sous VBA (car je vais m'efforcer de faire ce qui marcherait pour les 2 : VB et VBA)?

  19. #19
    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
    Par défaut
    Oui, Tag existe sur les contrôles que j'ai vérifiés, y compris sur les images et sur les scrollbars.

  20. #20
    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
    Citation Envoyé par ouskel'n'or
    Hello vous deux, je vois que vous êtes toujours sur le pont...
    Je suis assez d'accord avec vous... mais vous connaissez pas "Erzatz"... C'est le genre de gars pour à avoir renommé TextBox1 en textBox2 et inversement rien que pour se compliquer la vie et avoir le plaisir de poser une question sur le forum L'aime bien dialoguer...
    Bref, ainsi il a toute la philosophie de la chose, aussi bien sur VB6 que sur VBA.
    Ensuite, son plaisir, c'est de lancer des questions et d'aller se coucher rien que pour voir...

    Parce que... il a écrit :

    ok merci

    jverrais ca lundi parce que là...

    Ca y'est c'est le week end !!!!!!!! ( )
    Bonne nuit à tous


    (A croire que ce smiley a été fait pour ouskel )

    En tout cas je vois que ca vous a occupé !! Vous ne vous etes pas ennuyé durant ce week end, alors qu'est ce qu'on dit??

    sinon en gros ce matin en voyant mon topic j'ai eu un choc , jme suis dit olala je dois pas etre bien reveillé, mais si yavait bien 36 réponses

    Bref, je lis aussi vite que je suis bon en VBA (plus serieusement j'ai 3/4 autre truc à faire là) donc je testerai ca (je sais meme pas à quoi correspond mon "ca" tellement y'a de reponses ) cet aprem et en tout cas merci de vos réponses

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

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