Renseigner un champs de texte suivant résultat liste déroulante [Résolu/Fermé]

- - Dernière réponse : smarties123
Messages postés
3
Date d'inscription
dimanche 7 septembre 2014
Statut
Membre
Dernière intervention
8 août 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
Afficher la suite 

7 réponses

Meilleure réponse
Messages postés
15348
Date d'inscription
mardi 12 juin 2007
Statut
Contributeur
Dernière intervention
19 août 2019
8615
2
Merci
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

Dire « Merci » 2

Heureux de vous avoir aidé ! Vous nous appréciez ? Donnez votre avis sur nous ! Evaluez CommentCaMarche

CCM 57947 internautes nous ont dit merci ce mois-ci

smarties123
Messages postés
3
Date d'inscription
dimanche 7 septembre 2014
Statut
Membre
Dernière intervention
8 août 2019
-
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 !
Messages postés
4814
Date d'inscription
dimanche 22 juillet 2007
Statut
Contributeur
Dernière intervention
3 octobre 2018
3283
0
Merci
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
0
Merci
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.
Argitxu
Messages postés
4814
Date d'inscription
dimanche 22 juillet 2007
Statut
Contributeur
Dernière intervention
3 octobre 2018
3283 -
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 http://www.cjoint.com/

Argitxu
Messages postés
15348
Date d'inscription
mardi 12 juin 2007
Statut
Contributeur
Dernière intervention
19 août 2019
8615
0
Merci
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
Merci
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
Merci M@rina.

FORMIDABLE !
Ca fonctionne parfaitement ! Merci beaucoup, c'est vraiment génial :)
0
Merci
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