Formulaires, liste déroulante qui dépend d'un champ précédent.

Fermé
dicamion Messages postés 7 Date d'inscription mardi 23 septembre 2014 Statut Membre Dernière intervention 30 septembre 2014 - 23 sept. 2014 à 12:09
m@rina Messages postés 20077 Date d'inscription mardi 12 juin 2007 Statut Contributeur Dernière intervention 25 avril 2024 - 10 oct. 2014 à 18:04
Bonjour à tous.
Je découvre les fonctions de formulaire de word 2007.
Je vous explique mon cas:

J'ai une première liste déroulante qui liste des grandes catégories (une douzaine) et je veux créer un autre champs plus loin avec une liste déroulante de sous catégories (environ 5 par grande catégorie).

Exemple:

liste 1:
moyen de transport
légume
fruit
viande
bâtiment
...

Liste 2: si j'ai sélectionné légume je veux avoir dans ma liste déroulante: courgette, carotte, etc et pas me retrouver avec une énorme liste du genre: maison école banane poire voiture autobus courgette

Je pense que mon exemple est assez parlant...
Si vous avez des liens où tout est expliqué ce serait super sympa, même en anglais (ma version de word est en anglais au bureau), parce que je sais même pas quoi taper pour trouver ça je connais pas le jargon.

Merci à tous.

4 réponses

dicamion Messages postés 7 Date d'inscription mardi 23 septembre 2014 Statut Membre Dernière intervention 30 septembre 2014
26 sept. 2014 à 07:37
Me laissez pas tout seul...
:(
0
dicamion Messages postés 7 Date d'inscription mardi 23 septembre 2014 Statut Membre Dernière intervention 30 septembre 2014
29 sept. 2014 à 14:12
Merci c'est exactement ca que je cherche, j'ai essayé une première fois, mais ça ne semble pas marcher, je n'ai surement pas du faire dans le même ordre et avec la même version de windows, et en plus ma version est en anglais.
je réessaye encore et si je n'y arrive toujours pas je crie "au secours"
0
dicamion Messages postés 7 Date d'inscription mardi 23 septembre 2014 Statut Membre Dernière intervention 30 septembre 2014
30 sept. 2014 à 07:03
au secour!!!

Bon j'ai ouvert mon document....
renseigné ma liste déroulante ld1,
créé une liste déroulante ld2 vierge,
ouvert l'éditeur de macro. créé une macro nommée synchro.
copié collé le code entier trouvé sur le lien de m@rina.
enregistré sous word macro enabled.
après je suis sensé double cliquer sur la liste déroulante (ca ne fait rien...) du coup j'ai ouvert propriété en mode developer... aucun moyen de sélectionner la macro...

Merci pour l'aide.
0
dicamion Messages postés 7 Date d'inscription mardi 23 septembre 2014 Statut Membre Dernière intervention 30 septembre 2014
30 sept. 2014 à 07:35
j'ai sélectionné un autre type de liste deroulante, qui semble accepter les macros. Quand je double clic sur elle ca me met drop down form field options.

j'ai mis synchro en entrée et objectifs en sortie.
tag j'ai mis ld1 et ld2 pour les deux listes...
ca ne marche toujours pas
0
dicamion Messages postés 7 Date d'inscription mardi 23 septembre 2014 Statut Membre Dernière intervention 30 septembre 2014
Modifié par dicamion le 30/09/2014 à 11:19
J'ai réussi...

Alors on doit insérer des listes deroulantes dans "legacy forms" (qque chose hérité en francais)
on ouvre le gestionnaire de macro grace a la barre doutils developper, et on va dans la partie project et on sélectionne son document entre parenthèse. on clique dessous sous microsoft word objects, et on double clic sur "this document".
La on copie colle la macro fournie par m@rina là ou c'est écrit "sub bidule" . on sauvegarde en acceptant les macro (dans le type de fichier à sauvegarder).

La premiere liste s'apelle ld2 en double cliquant dessus une fenetre s'affiche, on met "ld2" dans bookmark, on ajoute toutes les valeurs dans "drop down item" (en haut à gauche).
après on laisse entrée et sortie vide.

pour la deuxieme liste on met entrée en synchro et on l'apelle ld1.
on coche les deux points (calculer a la sortie et celui avant).
on est pas obligé d'entrer les valeurs pour la liste ce sera automatique.

Ensuite on verrouille en cochant l'option mentionnant un formulaire.
et voilà.
0
dicamion Messages postés 7 Date d'inscription mardi 23 septembre 2014 Statut Membre Dernière intervention 30 septembre 2014
30 sept. 2014 à 12:39
Le problème c'est que dans le script que tu m'as donné m@rina, la première liste déroulante doit être un chiffre.
ld1 est définie comme "byte", moi je veux du texte.
il faut utiliser le type de variable "string" c'est ça?
mais comment fait on?
Dois-je changer quelque chose à:
ld1 = ActiveDocument.FormFields("ld2").DropDown.Value
merci
0
Quelqu'un pour m'aider?
0
m@rina Messages postés 20077 Date d'inscription mardi 12 juin 2007 Statut Contributeur Dernière intervention 25 avril 2024 11 272
10 oct. 2014 à 18:04
Bonsoir,

Désolée de répondre tardivement, je me suis absentée plusieurs jours.

Je viens de regarder le code, et il y avait une petite coquille que j'ai corrigée. J'avais interverti les ld1 et ld2.

Non, la varialbe est bien byte parce que, en fait, ça correspond au numéro du choix dans la liste déroulante. Si choix =1, on aura la liste déroulante 2 avec choux, carottes, haricots, si le choix =2 on aura autre chose, etc.

m@rina
0
m@rina Messages postés 20077 Date d'inscription mardi 12 juin 2007 Statut Contributeur Dernière intervention 25 avril 2024 11 272
27 sept. 2014 à 16:38
-1