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 une ListView d'un autre UserForm


Sujet :

Macros et VBA Excel

  1. #1
    Nouveau membre du Club Avatar de morpheuss
    Homme Profil pro
    Technicien maintenance
    Inscrit en
    Juin 2013
    Messages
    61
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Technicien maintenance

    Informations forums :
    Inscription : Juin 2013
    Messages : 61
    Points : 29
    Points
    29
    Par défaut Focus sur une ListView d'un autre UserForm
    Bonjour,

    J'ai une ListView dans un UserForm1, lorsque je sélectionne une ligne et que je clique sur un bouton "Preview" un autre UserForm2 s'affiche me permettant de prévisualiser un élément.
    Je souhaiterais après affichage de ce second UserForm2 rendre le focus sur la ListView1 de mon 1er UserForm1 afin de pouvoir sélectionner une nouvelle ligne directement avec les flèches du clavier.

    J'essaye en mettant ce code à la fin de la macro UserForm_Initialize() de mon UserForm2

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    UserForm1.ListView1.SetFocus
    il n'y a pas d'erreur mais ça ne fonctionne pas.

    Avez-vous une idée ?

    Cordialement,

    Steph

  2. #2
    Membre actif
    Homme Profil pro
    chef de projet transverse MOE
    Inscrit en
    Janvier 2015
    Messages
    121
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : chef de projet transverse MOE
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Janvier 2015
    Messages : 121
    Points : 229
    Points
    229
    Par défaut
    Sans aucune justification autre que mes essais d'utilisation de user form: J'ai l'impression que le focus ne peut pas sortir du userform en cours d'utilisation.
    Dans mon propre projet où j'ai un userform de choix qui fait poper X userform différents à partir de boutons, je ne peux pas reprendre la main sur le userform de choix sans avoir fermé le userform lancé par un des boutons de ce userform.
    il est probable que ton ordre échoue tout simplement car cela n'est pas possible (sans toutefois générer d'erreur).

    Dans ton cas, j'imagine qu'il y a probablement un evenement du userform qui doit correspondre à la reprise du focus, et dedans tu dois pouvoir mettre ta ligne de code pour que quand on revient sur ton userform, le focus soit mis directement sur ce que tu veux.
    Tu peux probablement gérer une variable globale pour gérer les différents cas de figure et bien positionner ton focus quelque soit l'endroit d'où tu viens.

    l'evenement: Activate.

  3. #3
    Membre actif
    Homme Profil pro
    Ancien Etudiant
    Inscrit en
    Janvier 2019
    Messages
    152
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Cher (Centre)

    Informations professionnelles :
    Activité : Ancien Etudiant

    Informations forums :
    Inscription : Janvier 2019
    Messages : 152
    Points : 224
    Points
    224
    Par défaut
    Bonjour,

    Par défaut une UserForm est modal.( on ne peut avoir d'actions en dehors de l'userform)

    dans l'userform1 , "lancer" l'userform2 en non modal => userform2.show 0

    On pourra revenir sur userform1 par clic.

    A+

    PS: a priori il faut que userform1 soit aussi non modal

  4. #4
    Membre actif
    Homme Profil pro
    chef de projet transverse MOE
    Inscrit en
    Janvier 2015
    Messages
    121
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : chef de projet transverse MOE
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Janvier 2015
    Messages : 121
    Points : 229
    Points
    229
    Par défaut
    Et donc pour être sûr d'avoir le focus sur le bon item: utilisation de l'event activate?

  5. #5
    Membre actif
    Homme Profil pro
    Ancien Etudiant
    Inscrit en
    Janvier 2019
    Messages
    152
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Cher (Centre)

    Informations professionnelles :
    Activité : Ancien Etudiant

    Informations forums :
    Inscription : Janvier 2019
    Messages : 152
    Points : 224
    Points
    224
    Par défaut
    sauf s'il y ai déjà du code , oui (activate userform1)

  6. #6
    Nouveau membre du Club Avatar de morpheuss
    Homme Profil pro
    Technicien maintenance
    Inscrit en
    Juin 2013
    Messages
    61
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Technicien maintenance

    Informations forums :
    Inscription : Juin 2013
    Messages : 61
    Points : 29
    Points
    29
    Par défaut
    Mes deux UserForm sont bien configurer en ShowModal = False

    activate userform1 me génère une erreur, comment faut il écrire cette commande ?

  7. #7
    Membre actif
    Homme Profil pro
    Ancien Etudiant
    Inscrit en
    Janvier 2019
    Messages
    152
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Cher (Centre)

    Informations professionnelles :
    Activité : Ancien Etudiant

    Informations forums :
    Inscription : Janvier 2019
    Messages : 152
    Points : 224
    Points
    224
    Par défaut
    Bonjour,

    Dans l'évènement Activate de l'userform1 juste l'instruction:


  8. #8
    Expert éminent
    Homme Profil pro
    Inscrit en
    Août 2010
    Messages
    3 453
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Août 2010
    Messages : 3 453
    Points : 6 871
    Points
    6 871
    Par défaut
    Bonjour,

    Les deux UserForm en non modal, du second UserForm, le simple fait de donner le focus à un contrôle du premier, active l'UserForm et mets le focus sur le contrôle visé comme par exemple :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    Private Sub CommandButton1_Click()
     
        UserForm1.TextBox2.SetFocus
     
    End Sub
    CommandButton1 étant sur l'UserForm2 !

  9. #9
    Nouveau membre du Club Avatar de morpheuss
    Homme Profil pro
    Technicien maintenance
    Inscrit en
    Juin 2013
    Messages
    61
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Technicien maintenance

    Informations forums :
    Inscription : Juin 2013
    Messages : 61
    Points : 29
    Points
    29
    Par défaut
    Merci à vous tous,

    finalement ça fonctionne mais j'ai du placer cette ligne

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    UserForm1.ListView1.SetFocus
    à la fin de ma macro de mon UserForm1 qui appel mon UserForm2

  10. #10
    Expert éminent
    Homme Profil pro
    Inscrit en
    Août 2010
    Messages
    3 453
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Août 2010
    Messages : 3 453
    Points : 6 871
    Points
    6 871
    Par défaut
    Bonjour,

    finalement ça fonctionne mais j'ai du placer cette ligne
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    UserForm1.ListView1.SetFocus
    à la fin de ma macro de mon UserForm1 qui appel mon UserForm2
    Ce qui est tout à fait logique car si tu utilises une ligne de code comme ceci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    ListView1.SetFocus
    Le formulaire cherche le contrôle sur lui même, il est donc nécessaire de préciser l'objet qui le possède !

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

Discussions similaires

  1. Focus sur une autre application
    Par labrute dans le forum C++
    Réponses: 8
    Dernier message: 06/04/2009, 10h57
  2. Changement de style lors du focus sur une cellule
    Par zyg dans le forum Général JavaScript
    Réponses: 13
    Dernier message: 23/12/2005, 10h29
  3. focus sur une input text
    Par mic79 dans le forum Général JavaScript
    Réponses: 4
    Dernier message: 05/01/2005, 18h06
  4. Focus sur une cellule spécifique d'un DBGrid
    Par danbern dans le forum Bases de données
    Réponses: 4
    Dernier message: 25/11/2004, 19h04
  5. Focus sur une application Windows
    Par mixi dans le forum Général JavaScript
    Réponses: 4
    Dernier message: 13/10/2004, 19h57

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