Astuce: Les autres langues sont Google-Traduction. Vous pouvez visiter le English version de ce lien.
Se connecter
x
or
x
x
S'enregistrer
x

or

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 du premier menu déroulant. Comment faire? Cet article va vous montrer 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 du code VBA


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

Le code VBA ci-dessous peut vous aider à créer des listes déroulantes dépendantes 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 > Zone de liste déroulante. Voir la capture d'écran:

2. Cliquez avec le bouton droit sur la première liste déroulante (cette liste déroulante doit être la liste parent), 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 Ajoutez Cliquez sur le bouton, répétez l'opération jusqu'à ce que toutes les catégories soient ajoutées à la liste déroulante Éléments dans.

3.2 Entrée ddfood dans le Favoris boîte.

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

4. Faites un clic droit 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 dans le 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, Copiez ensuite le code VBA ci-dessous dans la fenêtre du 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

À noter :

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

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

7. Enregistrez le code et revenez au document.

8. Faites un clic droit 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, sélectionnez le nom de la macro ci-dessus (Popolateddfood) dans le menu sortie liste déroulante, puis cliquez sur OK .

9. Maintenant cliquez Développeur > Restreindre l'édition comme ci-dessous capture d'écran montré.

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

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

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

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

10.4) Dans le Démarrer l'application de la protection dialogue, entrez le mot de passe et cliquez sur le bouton OK bouton. Voir la capture d'écran:

Maintenant, les listes déroulantes dépendantes sont créées. 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.



Kutools for Word

Plus que des fonctions avancées 100 pour Word 2003, 2007, 2010, 2013, 2016 et 2019

coup-kutools-700-225-kte

Plus de fonctionnalités | Essai Gratuit | Seulement $ 39.00 pour des centaines de fonctions

Say something here...
symbols left.
You are guest ( Sign Up? )
or post as a guest, but your post won't be published automatically.
Loading comment... The comment will be refreshed after 00:00.
  • To post as a guest, your comment is unpublished.
    mary · 1 months ago
    can this be done in older versions of Word or have to be saved as a certain doc type?
  • To post as a guest, your comment is unpublished.
    Ingrid · 1 months ago
    Can you add this to multiple areas on a single page consisting of multiple sections? I was able to successfully complete the process in one section of my document, but when I attempt to complete the same process while on the same page, but in a different section of my document and with new drop down options, only my first added boxes are working, not the ones in the second section..
    • To post as a guest, your comment is unpublished.
      crystal · 21 days ago
      Hi ingrid,
      Supposing you have three groups of dependent drop-down lists in your document. If you need all dependent drop-down lists take effect, please apply the below VBA code and do the below settings:

      In the step 4 and 5 we mentioned in the article, now you need to do the following changes:
      1. For the first group of the dependent drop-down lists, please get into each drop-down list's Properties window and specify the Bookmark as ddfood1 and ddCategory1 separately;
      2. For the second group of the dependent drop-down lists, please get into each drop-down list's Properties window and specify the Bookmark as ddfood2 and ddCategory2 separately;
      2. For the third group of the dependent drop-down lists, please get into each drop-down list's Properties window and specify the Bookmark as ddfood3 and ddCategory3 separately;

      Then go ahead exactly as we provided in the article to finish the whole settings.

      VBA code:
      Sub Populateddfood()
      'Update by Extendoffice 2019/03/18
      Dim xDirection As FormField
      Dim xState As FormField
      Dim xRng As Range
      Dim xFoodBM, xCategoryBM As String
      Set xRng = Selection.Range
      On Error Resume Next
      For i = 1 To ActiveDocument.FormFields.Count
      xFoodBM = "ddfood" & i
      xCategoryBM = "ddCategory" & i
      Set xDirection = ActiveDocument.FormFields(xFoodBM)
      Set xState = ActiveDocument.FormFields(xCategoryBM)
      If (Not (xState Is Nothing)) And (Not (xDirection Is Nothing)) Then
      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 If
      Set xDirection = Nothing
      Set xState = Nothing
      Next
      xRng.Select
      End Sub
  • To post as a guest, your comment is unpublished.
    MM · 2 months ago
    Is there a similar code to do the almost the exact same thing except have a text form field automatically populate depending upon the dropdown choice? For example, choosing a specific company in the dropdown and having a text form field automatically populate with the city where the company is located?
    • To post as a guest, your comment is unpublished.
      crystal · 1 months ago
      Good day,
      Sorry can help you with that. Thank you for your comment.