Note: The other languages of the website are Google-translated. Back to English

Comment créer des listes déroulantes dépendantes dans un document Word?


Comme le montre la capture d'écran de gauche, vous devez limiter les choix dans la deuxième liste déroulante en fonction de l'option de la première liste déroulante, comment pouvez-vous faire ? Cet article vous montrera une méthode pour créer des listes déroulantes dépendantes dans un document Word.

Créer des listes déroulantes dépendantes dans Word avec le code VBA


Créer des listes déroulantes dépendantes dans Word avec le code VBA

Le code VBA ci-dessous peut vous aider à créer une liste déroulante dépendante dans un document Word. Veuillez suivre les instructions étape par étape.

1. Tout d'abord, vous devez insérer deux listes déroulantes dans votre document Word. Cliquez sur Développeur > Formulaires hérités > Champ de formulaire déroulant. Voir la capture d'écran:

2. Cliquez avec le bouton droit sur la première liste déroulante (cette liste déroulante doit être celle parente), puis cliquez sur Propriétés. Voir capture d'écran:

3. Dans l'ouverture Options de champ de formulaire déroulant boîte de dialogue, vous devez:

3.1 Entrez la catégorie dans le Élément déroulant boîte, puis cliquez sur le Ajouter une détection de fuite de données , répétez l'opération jusqu'à ce que toutes les catégories soient ajoutées à la zone de liste déroulante Éléments dans.

3.2 Entrer ddnourriture into the Favoris boîte.

3.3 Cliquez sur le OK bouton. Voir la capture d'écran:

4. Cliquez avec le bouton droit de la souris sur la deuxième liste déroulante, cliquez sur Propriétés ouvrir son Options de champ de formulaire déroulant boîte de dialogue et dans la boîte de dialogue, entrez ddCatégorie into the Favoris boîte et cliquez sur le OK bouton. Voir la capture d'écran:

5. appuie sur le autre + F11 clés pour ouvrir le Microsoft Visual Basic pour applications fenêtre.

6. dans le Microsoft Visual Basic pour applications fenêtre, cliquez sur insérer > Module, puis copiez ci-dessous le code VBA dans la fenêtre Module.

Code VBA: créer une liste déroulante dépendante dans Word

Sub Populateddfood()
'Update by Extendoffice 2018/10/25
    Dim xDirection As FormField
    Dim xState As FormField
    On Error Resume Next
    Set xDirection = ActiveDocument.FormFields("ddfood")
    Set xState = ActiveDocument.FormFields("ddCategory")
    If ((xDirection Is Nothing) Or (xState Is Nothing)) Then Exit Sub
    With xState.DropDown.ListEntries
        .Clear
        Select Case xDirection.Result
            Case "Fruit"
                .Add "Apple"
                .Add "Banana"
                .Add "Peach"
                .Add "Lychee"
                .Add "Watermelon"
            Case "Vegetable"
                .Add "Cabbage"
                .Add "Onion"
            Case "Meat"
                .Add "Pork"
                .Add "Beef"
                .Add "Mutton"
        End Select
    End With
End Sub

Notes:

1. Dans le code, veuillez modifier les éléments sous chaque cas selon vos besoins.

2. ddnourriture et ddCatégorie doit correspondre aux options de signet que vous avez entrées dans les deux ci-dessus Options de champ de formulaire déroulant Boîtes de dialogue.

7. Enregistrez le code et revenez au document.

8. Cliquez avec le bouton droit de la souris sur la première liste déroulante et cliquez sur Propriétés ouvrir le Options de champ de formulaire déroulant boite de dialogue. Dans la boîte de dialogue, veuillez sélectionner le nom de la macro ci-dessus (ici Popolateddfood) dans le Sortir liste déroulante, puis cliquez sur le OK .

9. Cliquez maintenant sur Développeur > Restreindre l'édition comme ci-dessous la capture d'écran montrée.

10. dans le Restreindre l'édition volet, vous devez:

10.1) Vérifiez le Autoriser uniquement ce type de modification dans le document boîte;

10.2) Sélectionnez Remplir des formulaires option dans la liste déroulante;

10.3) Cliquez sur le Oui, commencez à appliquer la protection bouton;

10.4) Dans le Commencer à appliquer la protection boîte de dialogue, entrez le mot de passe et cliquez sur le OK bouton. Voir la capture d'écran:

Maintenant, une liste déroulante dépendante est créée. Lorsque vous sélectionnez Fruit dans la première liste déroulante, seules les catégories de fruits peuvent être sélectionnées dans la seconde.


Outils de productivité Word recommandés

 

Kutools For Word - Plus de 100 fonctionnalités avancées pour Word, économisez 50% de votre temps

  • Les opérations compliquées et répétées peuvent être effectuées une seule fois en quelques secondes.
  • Insérez simultanément plusieurs images dans des dossiers dans un document Word.
  • Fusionner et combiner plusieurs fichiers Word dans des dossiers en un seul avec l'ordre souhaité.
  • Divisez le document actuel en documents séparés selon l'en-tête, le saut de section ou d'autres critères.
  • Convertissez des fichiers entre Doc et Docx, Docx et PDF, collection d'outils pour les conversions et la sélection courantes, etc.
Commentaires (27)
Pas encore de notes. Soyez le premier à évaluer!
Ce commentaire a été minimisé par le modérateur sur le site
Existe-t-il un code similaire pour faire presque exactement la même chose, sauf qu'un champ de formulaire de texte se remplit automatiquement en fonction du choix de la liste déroulante? Par exemple, choisir une entreprise spécifique dans la liste déroulante et faire remplir automatiquement un champ de formulaire de texte avec la ville où se trouve l'entreprise ?
Ce commentaire a été minimisé par le modérateur sur le site
Bonne journée,
Désolé peut vous aider avec ça. Merci pour votre commentaire.
Ce commentaire a été minimisé par le modérateur sur le site
Pouvez-vous l'ajouter à plusieurs zones sur une même page composée de plusieurs sections ? J'ai réussi à terminer le processus dans une section de mon document, mais lorsque j'essaie de terminer le même processus sur la même page, mais dans une section différente de mon document et avec de nouvelles options de liste déroulante, seules mes premières boîtes ajoutées fonctionnent, pas ceux de la deuxième section.
Ce commentaire a été minimisé par le modérateur sur le site
Salut Ingrid,
Supposons que vous ayez trois groupes de listes déroulantes dépendantes dans votre document. Si vous avez besoin que toutes les listes déroulantes dépendantes prennent effet, veuillez appliquer le code VBA ci-dessous et effectuer les réglages ci-dessous :

Dans les étapes 4 et 5 que nous avons mentionnées dans l'article, vous devez maintenant effectuer les modifications suivantes :
1. Pour le premier groupe de listes déroulantes dépendantes, accédez à la fenêtre Propriétés de chaque liste déroulante et spécifiez le signet comme ddfood1 et ddCategory1 séparément ;
2. Pour le deuxième groupe de listes déroulantes dépendantes, accédez à la fenêtre Propriétés de chaque liste déroulante et spécifiez le signet comme ddfood2 et ddCategory2 séparément ;
2. Pour le troisième groupe de listes déroulantes dépendantes, accédez à la fenêtre Propriétés de chaque liste déroulante et spécifiez le signet comme ddfood3 et ddCategory3 séparément ;

Ensuite, continuez exactement comme nous l'avons prévu dans l'article pour terminer l'ensemble des paramètres.

Code VBA :
Sub Populateddfood()
'Mettre à jour par Extendoffice 2019/03/18
Dim xDirection As FormField
Dim xState As FormField
Dim xRng As Range
Dim xFoodBM, xCategoryBM As String
Définir xRng = Sélection.Plage
On Error Resume Next
Pour i = 1 Vers ActiveDocument.FormFields.Count
xFoodBM = "ddfood" & je
xCatégorieBM = "ddCatégorie" & je
Définir xDirection = ActiveDocument.FormFields(xFoodBM)
Définir xState = ActiveDocument.FormFields(xCategoryBM)
Si (Pas (xState n'est rien)) Et (Pas (xDirection n'est rien)) Alors
Avec xState.DropDown.ListEntries
.Clear
Sélectionnez Case xDirection.Result
Coffret "Fruits"
.Ajouter "Pomme"
.Ajouter "Banane"
.Ajouter "Pêche"
.Ajouter "Litchi"
.Ajouter "Pastèque"
Coffret "Légume"
.Ajouter "Chou"
.Ajouter "Oignon"
Caisse "Viande"
.Ajouter "Porc"
.Ajouter "Boeuf"
.Ajouter "Mouton"
End Select
Terminer par
Si fin
Définir xDirection = Rien
Définir xState = Rien
Suivant
xRng.Select
End Sub
Ce commentaire a été minimisé par le modérateur sur le site
cela peut-il être fait dans les anciennes versions de Word ou doit-il être enregistré sous un certain type de document ?
Ce commentaire a été minimisé par le modérateur sur le site
Bonjour Mary,
Tu veux dire quelle version ?
Ce commentaire a été minimisé par le modérateur sur le site
Salut,
y a-t-il des restrictions avec le nom dans le champ (par exemple 2 mots, ou l'utilisation de caractères spéciaux) ?
Comme le champ A (nom de l'entreprise) le champ B (nom du directeur, comme Jack Black).
Merci !
Ce commentaire a été minimisé par le modérateur sur le site
Salut Marc,
Oui, il y a des restrictions avec le nom dans le champ.
Pour plusieurs mots avec des espaces, vous devez remplacer les espaces par des lignes soulignées telles que Company_Name.
Et le nom du signet ne peut contenir aucun des caractères spéciaux tels que / \ : * ? " < > |
Merci pour votre commentaire.
Ce commentaire a été minimisé par le modérateur sur le site
Bonjour,

Comment habillons-nous le texte ? J'ai suivi l'étape et ça marche bien sauf que quand la deuxième liste est trop longue, ça dépasse la page. Existe-t-il un moyen de le faire envelopper automatiquement?
Ce commentaire a été minimisé par le modérateur sur le site
Salut Paul,
Désolé, je ne peux pas encore vous aider. Merci pour votre commentaire.
Ce commentaire a été minimisé par le modérateur sur le site
SALUT, j'ai réussi à faire fonctionner les menus déroulants. J'ai une question
Lorsque j'effectue la sélection pour la première liste déroulante, existe-t-il un moyen d'automatiser les sélections de coordination et associées pour les listes déroulantes suivantes ? Par example. J'ai une liste déroulante pour les parents, les deux listes déroulantes pour les enfants sont respectivement le titre et le numéro de téléphone. Lorsque je sélectionne le nom de l'avocat, je souhaite que les menus déroulants des enfants associés remplissent automatiquement le titre et le numéro de téléphone. Comment pourrais-je faire ça ?

Merci d'avance.

Sylvia
Ce commentaire a été minimisé par le modérateur sur le site
Bonne journée,
Désolé, je ne peux pas encore vous aider. Merci pour votre commentaire.
Ce commentaire a été minimisé par le modérateur sur le site
Existe-t-il un moyen d'ajouter plusieurs champs de catégorie en fonction d'une seule sélection ? par exemple, je dois dire Sélectionner "Vin" mais je dois pouvoir sélectionner 5 options (fruité, rouge, fort, etc...) parmi les 10 options possibles dans la deuxième liste déroulante. J'ai suivi les instructions ci-dessus et fonctionne bien sur un champ avec un autre champ dépendant uniquement. Mais j'ai besoin de 5 champs dépendants, tout de même déclenchés par le seul champ dans ce cas "vin". Je duplique le champ déroulant, cela ne fonctionne pas, j'essaie d'ajouter un deuxième champ au code, mais je ne sais pas comment : ActiveDocument.FormFields("ddCategory") et ("ddCategory2")
Ce commentaire a été minimisé par le modérateur sur le site
Salut Ed,
Désolé, je ne peux pas vous aider. Merci pour votre commentaire.
Ce commentaire a été minimisé par le modérateur sur le site
Bonjour, Comment puis-je dupliquer la boîte de catégories? J'ai utilisé le code ci-dessus et fonctionne bien, mais seulement pour une boîte. Que dois-je faire dans le code si par exemple si je dois sélectionner jusqu'à 3 fruits une fois que j'ai sélectionné le groupe Fruit ? Je duplique le champ que j'ai créé mais un seul fonctionne.
---------------------
Sélectionnez
FRUITS : banane
pomme
"sélectionner un article"


----------------------------------
Sélectionnez
Légume : Chou
oignon
"sélectionner un article"
Ce commentaire a été minimisé par le modérateur sur le site
Merci pour cette ressource très utile.

Est-il possible de répéter plusieurs fois la même liste déroulante dépendante dans un formulaire ?

J'ai besoin que le remplisseur de formulaire attribue une catégorie à chaque nouvelle ligne (mais avec les mêmes options à chaque fois).

Merci
Amy
Ce commentaire a été minimisé par le modérateur sur le site
J'utilise ce même code, mais le texte avec lequel je remplace la ddcategory contient plus de 100 mots. Existe-t-il un moyen d'envelopper le texte pour l'empêcher de sortir de la page et de disparaître ?
Ce commentaire a été minimisé par le modérateur sur le site
J'ai le même problème!! :0
Ce commentaire a été minimisé par le modérateur sur le site
سلام من همه مراحل رو رفتم ولی درآخر وقتی از لیست اول یه استان رو انتخاب ی کنم تویهG ان اال دفقطشهر ه?
چیکار باید بکنم؟
Ce commentaire a été minimisé par le modérateur sur le site
Bonjour, pour une raison quelconque, je ne peux rien modifier d'autre dans le fichier Word si la liste déroulante est active. Existe-t-il un moyen d'éviter cela?

Merci
Ce commentaire a été minimisé par le modérateur sur le site
J'ai le même problème est-ce que quelqu'un a pu m'aider sur celui-ci
Ce commentaire a été minimisé par le modérateur sur le site
Cela a été extrêmement utile, merci.
J'ai une question, existe-t-il un moyen de modifier le code afin que lorsque je sélectionne un nouvel élément dans la première liste déroulante, celui qui dépend s'efface ?
Ce commentaire a été minimisé par le modérateur sur le site
Désolé pour la réponse tardive, je ne suis tombé sur cette page qu'aujourd'hui :-)
Ça le fait déjà. La première instruction à l'intérieur de la construction Select case ... End select efface la deuxième liste. Si aucun des critères n'est rempli, rien n'est ajouté.
Ce commentaire a été minimisé par le modérateur sur le site
Salut, merci pour le tutoriel détaillé, mais j'ai une question puisque le modèle de mot est à l'usage des autres, 
Ce commentaire a été minimisé par le modérateur sur le site
Salut, merci beaucoup pour le tutoriel détaillé, mais j'ai une question puisque le modèle de mot est à l'usage des autres. Vous avez mentionné le mode de protection et un mot de passe est un must, cela peut faire si je leur dis le mot de passe, alors il y a un conflit : il y a d'autres blancs qui doivent être remplis, cela ne peut être fait que si le mode de protection est désactivé. Que devrais-je faire? Existe-t-il une méthode pour répondre aux deux besoins ?
Ce commentaire a été minimisé par le modérateur sur le site
Bonjour,

ist das ganze auch unter Outlook möglich. Leider bekomme ich das so nicht hin da die Eigenschaften des Dropdown Menüs ganz anders aussehen.

Ich wollte unter Aufgaben einen Reparaturauftrag erstellen wo man Gebäude,Bereich und dan Zimmernummer oder Bezeichnung auwählen kann.

Ist das möglich in Outlook/Aufgaben ?



Danke
Ce commentaire a été minimisé par le modérateur sur le site
Bonjour,
Vous pouvez créer une liste déroulante avec un champ personnalisé dans la fenêtre Tâche Outlook en suivant les étapes de cet article :
Comment ajouter une liste déroulante avec un fichier personnalisé dans la fenêtre de tâches Outlook ?
https://www.extendoffice.com/documents/outlook/4453-outlook-custom-fields-tasks-drop-down.html
Ou créez une liste déroulante dans Word, puis copiez-la et collez-la dans la fenêtre Tâche selon vos besoins.
Mais si vous souhaitez créer des listes déroulantes dépendantes dans la tâche Outlook, aucune méthode n'a encore été trouvée.
Désolé à ce sujet.
Il n'y a pas encore de commentaires postés ici
Laisser vos commentaires
Publier en tant qu'invité
×
Évaluez cet article:
0   Personnages
Emplacements suggérés

Nous suivre

Copyright © 2009 - www.extendoffice.com. | Tous les droits sont réservés. Alimenté par ExtendOffice. | | Plan du site
Microsoft et le logo Office sont des marques commerciales ou des marques déposées de Microsoft Corporation aux États-Unis et / ou dans d'autres pays.
Protégé par Sectigo SSL