Renseigner un champs de texte suivant résultat liste déroulante

Résolu/Fermé
Eskéléa - 1 mars 2017 à 11:19
smarties123 Messages postés 4 Date d'inscription dimanche 7 septembre 2014 Statut Membre Dernière intervention 24 octobre 2019 - 8 août 2019 à 20:13
Bonjour à tous,

voilà une matinée que je cherche à faire une manip, qui doit être simplissime, et je ne trouve ni par moi-même, ni sur les forums.

Pour faire simple :
J'ai ajouté un "contrôle de contenue de zone de liste déroulante" dans mon document.
On peut choisir "PROCEDURE" "INSTRUCTION" ou "MODE OPERATOIRE"

J'aimerais créer une zone de texte où, en fonction de cette valeur, cela incrémente automatiquement "PRO" "INS" ou "MOP"

Et là je bloque complètement.
Ca va certainement vous paraître évident, mais je ne trouve vraiment pas quel contrôle insérer ou quelle manip faire

D'avance merci,
Esk

7 réponses

m@rina Messages postés 20065 Date d'inscription mardi 12 juin 2007 Statut Contributeur Dernière intervention 23 avril 2024 11 271
3 mars 2017 à 01:15
Supposant que le titre de ton contrôle liste déroulante soit "maliste" et que le titre du contrôle zone de texte soit "zt", voici une macro à mettre dans ThisDocument :

Private Sub Document_ContentControlOnExit(ByVal CC As ContentControl, Cancel As Boolean)
Dim controle As ContentControl
If CC.Title = "maliste" Then

For Each controle In ActiveDocument.ContentControls
If controle.Title = "zt" Then
If CC.Range = "PROCEDURE" Then
controle.Range = "PRO"
ElseIf CC.Range = "INSTRUCTION" Then
controle.Range = "INS"
ElseIf CC.Range = "MODE OPERATOIRE" Then
controle.Range = "MOP"
End If

End If
Next
End If
End Sub


m@rina
3
smarties123 Messages postés 4 Date d'inscription dimanche 7 septembre 2014 Statut Membre Dernière intervention 24 octobre 2019
8 août 2019 à 20:13
Bonjour,
Je cherche à faire exactement la même chose et en suivant tes instructions ça fonctionne. Toutefois, j'ai plusieurs listes déroulantes et j'aimerais faire la même chose avec les autres. Comment dois-je faire ? Quel code je dois écrire ? J'ai copié le même code en changeant les noms de listes et de zone de texte mais j'ai des messages d'erreur. Je crois que je ne copie pas au bon endroit. Merci pour ton aide !
0
Argitxu Messages postés 4831 Date d'inscription dimanche 22 juillet 2007 Statut Contributeur Dernière intervention 3 mars 2024 4 724
1 mars 2017 à 13:28
Bonjour

Sélectionne le contrôle de contenu de la liste déroulante et crées-en un signet : Insertion | Signet | lui donner le nom LD par exemple

Ensuite poser la condition avec cette formule
CTRL+F9 pour créer les codes champ { }
{ IF { REF LD } = "PROCEDURE" "PRO"} { IF { REF LD } = "INSTRUCTION" "INS"} { IF { REF LD } = "MODE OPERATOIRE" "MOP"}

REF LD est le renvoi vers le signet que tu viens de créer
Attention, pour une mise à jour à chaque modification de la liste déroulante, CTRL A pour sélectionner et F9 pour mettre à jour et actualiser ainsi le texte
1
Bonjour Argitxu,
merci pour ta réponse, mais je n'arrive pas à le faire fonctionner.
Quand je bascule les codes de champ, il me met REF et refuse de se mettre à jour.
0
Argitxu Messages postés 4831 Date d'inscription dimanche 22 juillet 2007 Statut Contributeur Dernière intervention 3 mars 2024 4 724
1 mars 2017 à 19:22
C'est que les codes champs sont mal insérés.
Les accolades doivent être faites avec Ctrl+F9. Il y a 3 blocs de IF identiques pour chacune des 3 conditions. Fais-en un et teste.
Sinon transmets ton exemple pour que je regarde. Utilise https://www.cjoint.com/

Argitxu
0
m@rina Messages postés 20065 Date d'inscription mardi 12 juin 2007 Statut Contributeur Dernière intervention 23 avril 2024 11 271
3 mars 2017 à 00:10
Bonjour,

Il existe des événements qui se déclenche à la modification d'un contrôle de contenu.

Si tu n'as rien contre les macros, les signets sont inutiles, et de plus, comme l'a précisé Argitxu, ils ne se mettent pas à jour automatiquement.
On peut écrire une petite macro qui remplira automatiquement ta zone de texte à la sortie de la liste déroulante.

m@rina
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Bonsoir !
Je n'ai rien contre les macros :) au contraire j'en utilise beaucoup sur excel mais sur word je ne sais pas les mettre en oeuvre.
Votre aide serait vraiment la bienvenue :)
0
Merci M@rina.

FORMIDABLE !
Ca fonctionne parfaitement ! Merci beaucoup, c'est vraiment génial :)
0
Hello ! Une autre petite question sur le même thème.
Est-il possible de faire la même chose, mais en renvoyant une image à la place du texte ?

Par exemple, quand je choisis "PROCEDURE", il me renvoie l'image "Procedure.jpg" ?

merciiiii
0