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

VBA Word Discussion :

Ouverture automatique des listes déroulantes


Sujet :

VBA Word

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Mars 2009
    Messages
    92
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2009
    Messages : 92
    Points : 48
    Points
    48
    Par défaut Ouverture automatique des listes déroulantes
    Bonjour,

    Je cherche un moyen d'ouvrir automatiquement les listes déroulantes d'un document word en les parcourant avec la touche TAB.

    Actuellement, je sais le faire quand on clique dans un ControlContent, en utilisant simplement l'event associé :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    Private Sub Document_ContentControlOnEnter(ByVal ContentControl As ContentControl)
        If ContentControl.Type = wdContentControlDropdownList Or ContentControl.Type = wdContentControlComboBox Then
            SendKeys "%{down}"
        End If
    End Sub
    Mais ça ne fonctionne pas si on parcourt le document de TAB en TAB. Comment je pourrais faire ?

    Merci

  2. #2
    Membre du Club
    Profil pro
    Inscrit en
    Mars 2009
    Messages
    92
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2009
    Messages : 92
    Points : 48
    Points
    48
    Par défaut
    Alors, j'avance, mais ça ne fonctionne toujours pas.

    Comme l'événement voulu n'existait pas, j'ai créé un module de classe :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    Public WithEvents App As Word.Application
     
    Private Sub App_WindowSelectionChange(ByVal Sel As Selection)
        If Sel.Information(wdInContentControl) Then
            SendKeys "%{down}"
        End If
    End Sub
    Que j'initialise correctement :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    Dim X As New EventClassModule
     
    Sub Register_Event_Handler()
        Set X.App = Word.Application
    End Sub

    Chaque fois que je fais un TAB, ça active bien l'événement voulu, mais le SendKeys semble ne pas fonctionner (il ne se passe rien). De plus, je voudrais non pas activer le SendKeys sur tous les ContentControl, mais uniquement quand il s'agit de liste déroulante. Comment récupérer le ControlContent à partir de la Selection ?

    Merci

  3. #3
    Membre du Club
    Profil pro
    Inscrit en
    Mars 2009
    Messages
    92
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2009
    Messages : 92
    Points : 48
    Points
    48
    Par défaut
    Pas d'idée ?

  4. #4
    Invité
    Invité(e)
    Par défaut
    Citation Envoyé par DarkGriffin Voir le message
    Pas d'idée ?
    Bonjour,

    Pour ce qui me concerne : non. Si tu souhaites que je regarde (sans garantie), mets un fichier en ligne.

  5. #5
    Membre du Club
    Profil pro
    Inscrit en
    Mars 2009
    Messages
    92
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2009
    Messages : 92
    Points : 48
    Points
    48
    Par défaut
    Bonjour Eric,

    Je te remercie d'essayer de m'aider Fais ce que tu peux, évidemment.

    Je suis un peu comme un couillon devant ce truc, je ne pige pas du tout.

    J'ai simplifié le document au minimum (et expurgé des informations confidentielles). Tu verras, quand on clique sur une liste déroulante, ça s'ouvre bien automatiquement, mais si on y passe via un [TAB], ça déroule bien la procédure mais n'ouvre pas la liste, c'est à n'y rien comprendre.

    Merciiiii

    PS : apparemment, on ne peut pas joindre un fichier .docm... un comble pour un forum VBA Word non ? :p

    Ouverture_automatique.zip

  6. #6
    Invité
    Invité(e)
    Par défaut
    Citation Envoyé par DarkGriffin Voir le message
    Pour contourner ton problème, j'aurais rempli ce formulaire via une boite de dialogue et chargé les listes dans des listbox. Un bouton de validation aurait mis à jour les valeurs correspondantes.
    Nb : Je n'ai jamais essayé sur des combobox.

  7. #7
    Membre du Club
    Profil pro
    Inscrit en
    Mars 2009
    Messages
    92
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2009
    Messages : 92
    Points : 48
    Points
    48
    Par défaut
    Ouais, ce serait bien plus simple en effet. Mais là, on change complètement d'optique pour ce fichier, je ne suis pas sûr que l'utilisateur soit ravi.

    Tu ne vois pas pourquoi cette méthode ne fonctionne pas, sinon ? Rah c'est tellement frustrant...

    Merci de ton temps en tout cas.

  8. #8
    Invité
    Invité(e)
    Par défaut
    Citation Envoyé par DarkGriffin Voir le message
    je ne suis pas sûr que l'utilisateur soit ravi.
    Il n'y a que l'efficacité qui compte.

    Je suis entrain de regarder les propriétés et méthodes des ContentControl. Pourquoi as-tu donné un nom réservé à ta variable ContentControl ?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    Sub Document_ContentControlOnEnter(ByVal ContentControl As ContentControl)
        If ContentControl.Type = wdContentControlDropdownList Or ContentControl.Type = wdContentControlComboBox Then
            SendKeys "%{down}"
        End If
    End Sub

  9. #9
    Membre du Club
    Profil pro
    Inscrit en
    Mars 2009
    Messages
    92
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2009
    Messages : 92
    Points : 48
    Points
    48
    Par défaut
    Ah oui, ce n'est pas terrible.

    Mais ça ne change rien a priori.

  10. #10
    Invité
    Invité(e)
    Par défaut
    Citation Envoyé par DarkGriffin Voir le message
    Désolé, je n'ai pas trouvé de solution.

    Bon courage.

Discussions similaires

  1. Réponses: 2
    Dernier message: 14/09/2017, 16h22
  2. [XL-2003] Ouverture automatique de liste déroulante
    Par Banshor dans le forum Conception
    Réponses: 1
    Dernier message: 11/06/2014, 13h29
  3. Réponses: 8
    Dernier message: 11/02/2010, 16h18
  4. des Listes déroulante ...Et après?
    Par arti2004 dans le forum Général JavaScript
    Réponses: 9
    Dernier message: 28/03/2006, 15h40
  5. Réponses: 8
    Dernier message: 28/11/2005, 14h41

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