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 :

Setfocus et multipage [XL-2016]


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Homme Profil pro
    Assistant aux utilisateurs
    Inscrit en
    Mars 2014
    Messages
    52
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 58
    Localisation : France

    Informations professionnelles :
    Activité : Assistant aux utilisateurs
    Secteur : Santé

    Informations forums :
    Inscription : Mars 2014
    Messages : 52
    Par défaut Setfocus et multipage
    Bonjour le Forum,

    je sais, vous allez dire que ce problème a déjà été traité, mais malheureusement, sur votre forum ou sur internet, rien n'explique mon problème...

    Je vous ai mis en PJ un fichier excel beaucoup plus simple que celui que je suis en train de réaliser.

    Voici donc mon problème : Dans un formulaire, j'ai des textbox et des multipages. Lorsque je saisie un textbox (dans mon exemple le champ PRENOM), une fois que celui ci est validé par la touche ENTRÉE du clavier, je souhaite que mon curseur se place dans un textbox qui se trouve dans un multipage (ici dans TELEPHONE FIXE) .
    J'ai donc écrit ce code :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    Private Sub TextBox_Prénom_Exit(ByVal Cancel As MSForms.ReturnBoolean)
        Me.MultiPage1.Value = 0     'pour travailler sur le premier onglet
        'Me.TextBox_Fixe.SetFocus
    End Sub
    Malheureusement, premier problème, le Setfocus ne fonctionne pas... (c'est pourquoi je l'ai mis en commentaire!).

    En plus, deuxième problème, dans le code suivant (donc après avoir renseigné le textbox EMAIL,

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Private Sub TextBox_Email_Exit(ByVal Cancel As MSForms.ReturnBoolean)
        Me.MultiPage1.Value = 1
    End Sub
    le second onglet n'est pas activé, ALORS que dans le code précédent, le premier onglet est bien activé... !

    POURQUOI ?????

    Pourriez-vous m'expliquez mon problème et surtout m'aider à trouver une solution (il faut absolument que les changements de champ se fasse par la touche ENTRÉE et non pas par la touche de TABULATION (exigence de mon "chef"...)

    Merci d'avance
    Fichiers attachés Fichiers attachés

  2. #2
    Membre Expert
    Profil pro
    Inscrit en
    Février 2007
    Messages
    2 266
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2007
    Messages : 2 266
    Par défaut
    Bonjour,

    Je commence par le plus facile :
    le second onglet n'est pas activé, ALORS que dans le code précédent, le premier onglet est bien activé...
    Quand tu fais Enter sur l'email, c'est le dernier objet et il ne génère pas Exit, il faut cliquer ailleurs.
    Ca peut se résoudre en changeant son .tagIndex de 2 en 1, mais ça change l'ordre. Ou bien ajouter un textbox qui ne servira à rien (le cacher en le mettant plus bas)

    pour la 1ère question en tâtonnant j'ai fini par trouver la bonne syntaxe pour atteindre l'objet :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Me.MultiPage1.Pages(0).Controls("TextBox_Fixe")
    ' ou
    Me.MultiPage1.Pages(0).TextBox_Fixe
    seulement il n'accepte pas .SetFocus.
    Un message d'erreur qui laisse penser que le parent (Page) doit être activé et ne l'est pas.
    Et ça se confirme car si on met un point d'arrêt pour cliquer sur l'onglet avant, le .SetFocus passe.
    C'est tout pour ce soir :-)
    eric

  3. #3
    Membre averti
    Homme Profil pro
    Assistant aux utilisateurs
    Inscrit en
    Mars 2014
    Messages
    52
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 58
    Localisation : France

    Informations professionnelles :
    Activité : Assistant aux utilisateurs
    Secteur : Santé

    Informations forums :
    Inscription : Mars 2014
    Messages : 52
    Par défaut
    Bonjour et merci pour ta réponse eriiic, mais malheureusement, chez moi, le code
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Me.MultiPage1.Pages(0).TextBox_Fixe
    ne permet pas du tout de saisir directement dans le champ Texbox_Fixe...
    Sinon, pour mon autre problème, c'est parfait !

  4. #4
    Membre Expert
    Profil pro
    Inscrit en
    Février 2007
    Messages
    2 266
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2007
    Messages : 2 266
    Par défaut
    Bonjour,

    bien évidemment.
    C'est la syntaxe pour atteindre l'objet, à toi d'ajouter la méthode ou propriété voulue derrière.
    En l'occurence .SetFocus.
    Mais lis en détail ce que je t'ai écrit.
    eric

  5. #5
    Membre averti
    Homme Profil pro
    Assistant aux utilisateurs
    Inscrit en
    Mars 2014
    Messages
    52
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 58
    Localisation : France

    Informations professionnelles :
    Activité : Assistant aux utilisateurs
    Secteur : Santé

    Informations forums :
    Inscription : Mars 2014
    Messages : 52
    Par défaut
    J'ai bien lu ton message, et j'ai activé le parent page en faisant un , mais cela ne change rien ...

    et
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Me.MultiPage1.Pages(0).TextBox_Fixe.SetFocus
    ne fonctionne pas non plus ...

    Je ne vois donc pas du tout ou tu veux en venir, je suis désolé...

  6. #6
    Membre Expert
    Profil pro
    Inscrit en
    Février 2007
    Messages
    2 266
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2007
    Messages : 2 266
    Par défaut
    Je pensais être clair sur le point auquel j'étais rendu
    Un message d'erreur qui laisse penser que le parent (Page) doit être activé et ne l'est pas.
    Et ça se confirme car si on met un point d'arrêt pour cliquer sur l'onglet avant, le .SetFocus passe.
    Il est sélectionné, mais pas activé de la même façon qu'un clic dessus le fait.
    Cherche dans cette direction.
    eric

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

Discussions similaires

  1. [XL-2016] Difficultés sur: multipage activeX sur feuille + setfocus sur textbox avec touche enter
    Par PlastiBE dans le forum Macros et VBA Excel
    Réponses: 22
    Dernier message: 28/06/2017, 14h14
  2. SetFOcus sur un contrôle d'une autre feuille d'un multipage
    Par MacGeol dans le forum VB 6 et antérieur
    Réponses: 29
    Dernier message: 07/09/2005, 09h37
  3. [débutant] setfocus sur un TextField
    Par k-reen dans le forum Composants
    Réponses: 2
    Dernier message: 29/06/2004, 16h21
  4. [MFC] CSplitterWnd et SetFocus
    Par venomelektro dans le forum MFC
    Réponses: 6
    Dernier message: 08/04/2004, 18h13
  5. Erreur setfocus??
    Par Alx-I dans le forum Composants VCL
    Réponses: 2
    Dernier message: 06/02/2003, 14h04

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