Listes déroulantes égales
Fermé
Foreva
-
4 juil. 2017 à 09:44
eriiic Messages postés 24600 Date d'inscription mardi 11 septembre 2007 Statut Contributeur Dernière intervention 21 octobre 2024 - 7 juil. 2017 à 15:25
eriiic Messages postés 24600 Date d'inscription mardi 11 septembre 2007 Statut Contributeur Dernière intervention 21 octobre 2024 - 7 juil. 2017 à 15:25
A voir également:
- Listes déroulantes égales
- Créer des listes déroulantes excel - Guide
- Listes déroulantes en cascade excel - Guide
- Listes déroulantes multiselections ✓ - Forum Excel
- Listes déroulantes dynamiques? - Forum Word
- Comment diviser un cercle en 9 parties égales ✓ - Forum Photoshop
3 réponses
m@rina
Messages postés
21080
Date d'inscription
mardi 12 juin 2007
Statut
Contributeur
Dernière intervention
15 novembre 2024
11 352
4 juil. 2017 à 13:14
4 juil. 2017 à 13:14
Bonjour
Peux tu être plus précis ?
De quel type de liste déroulante parles tu ?
Quelle est ta version de Word ?
Tu veux changer le choix fait par l'utilisateur ou bien l'ensemble des items de la liste ?
m@rina
Peux tu être plus précis ?
De quel type de liste déroulante parles tu ?
Quelle est ta version de Word ?
Tu veux changer le choix fait par l'utilisateur ou bien l'ensemble des items de la liste ?
m@rina
m@rina
Messages postés
21080
Date d'inscription
mardi 12 juin 2007
Statut
Contributeur
Dernière intervention
15 novembre 2024
11 352
6 juil. 2017 à 11:52
6 juil. 2017 à 11:52
Bonjour,
Désolée, mais je n'ai pas de réponses car déjà les événements dans Word sont rares, donc il n'y en a pas pour ce genre de choses.
m@rina
Désolée, mais je n'ai pas de réponses car déjà les événements dans Word sont rares, donc il n'y en a pas pour ce genre de choses.
m@rina
eriiic
Messages postés
24600
Date d'inscription
mardi 11 septembre 2007
Statut
Contributeur
Dernière intervention
21 octobre 2024
7 239
6 juil. 2017 à 19:44
6 juil. 2017 à 19:44
Bonjour,
salut m@rina, pas encore en vacances ? :-)
Une tentative.
Je ne connais pas vraiment vba word donc pas trop d'exigences svp... ;-)
J'ai choisi la liste déroulante 'héritée' car elle permet une gestion facile de sa mise à jour, et permet d'appeler une macro en sortie.
Par contre ce que je me suis aperçu à la fin (je ne connais pas word non plus :-)) c'est qu'il faut verrouiller le formulaire pour que les listes soient actives.
A partir de ce moment seuls les éléments du formulaire sont modifiables.
Pas sûr que ça t'ailles (?!?)
Les activeX perdent leur valeurs à la fermeture et obligerait à modifier la liste en dur dans le code. Pas terrible non plus...
Explications dans le fichier.
https://mon-partage.fr/f/h734PS5X/
eric
salut m@rina, pas encore en vacances ? :-)
Une tentative.
Je ne connais pas vraiment vba word donc pas trop d'exigences svp... ;-)
J'ai choisi la liste déroulante 'héritée' car elle permet une gestion facile de sa mise à jour, et permet d'appeler une macro en sortie.
Par contre ce que je me suis aperçu à la fin (je ne connais pas word non plus :-)) c'est qu'il faut verrouiller le formulaire pour que les listes soient actives.
A partir de ce moment seuls les éléments du formulaire sont modifiables.
Pas sûr que ça t'ailles (?!?)
Les activeX perdent leur valeurs à la fermeture et obligerait à modifier la liste en dur dans le code. Pas terrible non plus...
Sub maj_Liste() Dim source As Object, liste() As String, ObjF As FormField Dim nom, nb As Long, i As Long 'Stop Set source = Selection.FormFields nom = Split(source(1).Name, "_") If LCase(Left(nom(0), 7)) = "listegr" And nom(1) = "1" Then 'il s'agit de la liste 1 d'un groupe de listes nb = source(1).DropDown.ListEntries.Count ' nombre d'items de la liste maitre ' recup items de la liste 1 ReDim liste(1 To nb) With source(1).DropDown For i = 1 To nb liste(i) = .ListEntries(i).Name Next i End With For Each ObjF In ActiveDocument.FormFields With ObjF.DropDown If LCase(Split(ObjF.Name, "_")(0)) = LCase(nom(0)) Then ' même groupe de liste .ListEntries.Clear ' vider la liste ' on copie les items dans la liste For i = 1 To nb .ListEntries.Add Name:=liste(i) Next i End If End With Next ObjF End If End Sub
Explications dans le fichier.
https://mon-partage.fr/f/h734PS5X/
eric
m@rina
Messages postés
21080
Date d'inscription
mardi 12 juin 2007
Statut
Contributeur
Dernière intervention
15 novembre 2024
11 352
7 juil. 2017 à 13:56
7 juil. 2017 à 13:56
Hello Eriiic
Merci de prendre le relais ! Je suis déjà partie en vacances et déjà revenue (après un mois complet quand même) ! ;)
Voilà pourquoi j'ai le cerveau un peu embrouillé.
Effectivement les champs hérités permettent le lancement de macro à la sortie, mais c'est lourd, car il faut, comme tu le soulignes, protéger le document, et donc le déprotéger à chaque modification du champ.
Sinon, faut faire une macro qui modifie toutes les liste déroulantes, mais il faudra la lancer, ce ne sera pas sur événement.
m@rina
Merci de prendre le relais ! Je suis déjà partie en vacances et déjà revenue (après un mois complet quand même) ! ;)
Voilà pourquoi j'ai le cerveau un peu embrouillé.
Effectivement les champs hérités permettent le lancement de macro à la sortie, mais c'est lourd, car il faut, comme tu le soulignes, protéger le document, et donc le déprotéger à chaque modification du champ.
Sinon, faut faire une macro qui modifie toutes les liste déroulantes, mais il faudra la lancer, ce ne sera pas sur événement.
m@rina
eriiic
Messages postés
24600
Date d'inscription
mardi 11 septembre 2007
Statut
Contributeur
Dernière intervention
21 octobre 2024
7 239
7 juil. 2017 à 15:25
7 juil. 2017 à 15:25
Il me semble que le demandeur également soit parti en vacances... ;-)
4 juil. 2017 à 14:24
Je ne veux donc pas changer le choix fait par les utilisateurs, mais bien les items de mes listes (pour ne pas avoir à les changer sur chacune de mes listes qui sont égales, et ce à chaque modification)
Ps : j'utilise ces listes là, mais je ne suis pas contre l'usage des zones de listes déroulantes (contrôle ActiveX).
J'ai essayé de par exemple leur donner le même nom mais ça ne fonctionne pas.
Si vous trouvez une solution ce serait carrément génial ^^,