Macro formulaire qui place le bon mot [Résolu]

Signaler
Messages postés
26
Date d'inscription
jeudi 10 janvier 2019
Statut
Membre
Dernière intervention
24 avril 2020
-
Messages postés
26
Date d'inscription
jeudi 10 janvier 2019
Statut
Membre
Dernière intervention
24 avril 2020
-
Bonjour

Je suis sous Word en mode Création Formulaire.

Je souhaiterais créer un document dont le titre serait :
Projet d'activité (1) ou d'atelier (2)
à ce niveau du titre, la personne qui va compléter le document aurait donc une zone déroulante.

Dans le contenu du document, en fonction de ce que la personne à choisis dans ce titre, je voudrais que ça place le bon mot dans l'intitulé de tous les titres :

ex au lieu de voir apparaître dans tout le document :
Nom de l'activité ou de l'atelier
Nom du professionnel responsable de l'activité ou de l'atelier
Objectifs généraux de l'activité ou de l'atelier

On verrait apparaître seulement ce qui correspond :
ex : la personne a sélectionné dans la zone déroulante Projet d'atelier, les intitulés seront donc
Nom de l'activité de l'atelier
Nom du professionnel responsable de l'atelier
Objectifs généraux de l'atelier

Le mot "activité" disparaîtrait pour laisser place au mot "atelier" dans tout le document.

Est-ce possible d'avoir une macro en se sens pour ce formulaire.

Merci pour vos lumières !

Sandra

6 réponses

Messages postés
16203
Date d'inscription
mardi 12 juin 2007
Statut
Contributeur
Dernière intervention
13 mai 2020
9 393
Messages postés
26
Date d'inscription
jeudi 10 janvier 2019
Statut
Membre
Dernière intervention
24 avril 2020

Bonjour Marina,
YOUPI !!!!! ça fonctionne !
Alors, dans les propriétés de ma zone déroulante : je n'avais pas coché "Ne pas supprimer le contrôle de contenu" de mon champ.
Quant à mon champ, dans la partie "Nom du style" je ne l'avais pas changé (cf. Titre 1 choisis la 1ère fois que tu m'avais déconseillé car trop risqué). Je l'ai donc bien modifié en cliquant sur "monstyle" (j'ai conservé ton appellation).
Je vois Marina, que mes "os à ronger" te donne matière à créer des articles. C'est parfait, si ça peut aider d'autres personnes.
Je ne suis pas pro comme toi (très loin derrière toi d'ailleurs), mais j'aime bien chercher à savoir et du coup il n'y a rien de mieux que la mise en pratique ! J'explore les fonds....
Un grand MERCI MERCI MERCI !
Prends soin de toi et de tes proches.
Cordialement.
Sandra
Messages postés
16203
Date d'inscription
mardi 12 juin 2007
Statut
Contributeur
Dernière intervention
13 mai 2020
9 393 >
Messages postés
26
Date d'inscription
jeudi 10 janvier 2019
Statut
Membre
Dernière intervention
24 avril 2020

Bonjour Sandra,

Oui du coup j'en fais des articles, parce que tes questions sont intéressantes et que c'est le genre de questions qui intéressent plein de monde.

L'option "Ne pas supprimer le contrôle" c'est bien quand on fait des formulaire, ça évite des erreurs. Car si la personne veut retourner dans la liste et qu'elle a supprimé le contrôle, il n'y a plus de liste.
On peut à l'inverse choisir "Supprimer le contrôle lorsque le contenu est modifié" dans d'autres situation : quand, par exemple, dans un modèle, on donne des indications qui doivent disparaître. Par exemple : "Cliquez ici pour saisir votre conclusion qui devra comporter 20 lignes au maximum..." Et donc la personne clique dedans, et le texte et le contrôle disparaissent.

Bien à toi, et bon courage pour la suite.
Bon confinement ! ;)

m@rina
Messages postés
26
Date d'inscription
jeudi 10 janvier 2019
Statut
Membre
Dernière intervention
24 avril 2020
>
Messages postés
16203
Date d'inscription
mardi 12 juin 2007
Statut
Contributeur
Dernière intervention
13 mai 2020

Marina,
Merci pour la précision et l'explication de la case "supprimer le contrôle lorsque le contenu est modifié", c'est effectivement une information que je vais retenir pour les prochaines fois.
Nous sommes allés marcher cet après-midi (pas plus loin d'1 km), mais nous avons la chance d'être à la campagne !
Je vais faire une autre question sur CCM pour savoir comment bloquer les pages d'un formulaire afin et que le texte de la page 2 ne remonte pas sur la page 1.
Tu verras peut être mon post.
Cordialement.
Sandra
Messages postés
16203
Date d'inscription
mardi 12 juin 2007
Statut
Contributeur
Dernière intervention
13 mai 2020
9 393
Bonjour,

Pour commencer il faut déjà qu'on sache quelle est ta version de Word et quel type de formulaire tu utilises. Il y en a plusieurs, comme j'explique ici :
http://faqword.com/index.php/word/formulaires-controles/911

Par ailleurs, dans tes exemples, je vois "Nom de l'activité de l'atelier", il y a les deux mots, c'est une erreur ?

Ensuite, est ce que tu veux le remplacement pour TOUS les mots ou bien uniquement certaines expressions à certains endroits ? Si c'est réellement TOUS les mots, ce peut être dangereux selon le contenu du document.

m@rina
Messages postés
26
Date d'inscription
jeudi 10 janvier 2019
Statut
Membre
Dernière intervention
24 avril 2020

Bonjour Marina,
Tu m'as déjà aidé pour l'histoire du formulaire avec le n° tél & sécu avec un nombre de chiffres à respecter.
Pour ce document, je suis donc toujours avec WORD 2016 et un formulaire via le Développeur.
Pour suivre tes recommandations, effectivement le mot "activité" et "atelier" sera a faire disparaître à certains endroits (en l’occurrence au niveau des intitulés).
Merci.
Sandra
Messages postés
16203
Date d'inscription
mardi 12 juin 2007
Statut
Contributeur
Dernière intervention
13 mai 2020
9 393
Bonjour,

Ah oui, désolée, j'avais zappé ta signature !! ;)

Donc tu utilises des contrôles de contenu. Il y a quelque chose de très simple à faire :
Tu insères un contrôle de contenu de liste déroulante et depuis la boîte de dialogue Propriétés, tu coches l'option "Utiliser un style...". Si tu as déjà prévu un style, tu le choisis dans la liste déroulante, sinon tu peux créer un nouveau style.
Attention, tu ne peux prendre que des styles de caractères ou des styles liés s'ils ne sont pas désactivés.
Peu importe le format qui peut être exactement identique au style Normal, c'est le nom qui importe.

Ensuite, à la place des termes "activité" et "atelier" qui seront modifiés, tu insères un champ STYLEREF avec le nom du style (tu insères une fois, et après tu fais des copier-coller). Avec l'affichage des champs (Alt+F4), si le style se nomme "toto", cela devrait donner : {STYLEREF toto}.

Les champs ne vont pas se mettre à jour tout seuls... On peut ajouter une macro à la sortie du contrôle pour mettre les champs à jour automatiquement. Si tu mets une balise nommée "liste":

Private Sub Document_ContentControlOnExit(ByVal CC As ContentControl, Cancel As Boolean)
If CC.Tag = "liste" Then ActiveDocument.Fields.Update
End Sub


Comme l'autre code, à mettre dans ThisDocument

Si ce code est pour le même document, tu n'ajoutes pas une deuxième macro, tu peux juste ajouter la ligne :
ActiveDocument.Fields.Update


avant le
Exit Sub


m@rina



Messages postés
26
Date d'inscription
jeudi 10 janvier 2019
Statut
Membre
Dernière intervention
24 avril 2020



Marina,
J'ai essayé de faire, mais il y a forcément quelque chose que je ne dois par faire correctement.
Dans le titre de mon doc "Projet", j'ai bien mis la zone déroulante, pour choisir entre d'atelier" "d'activité".
Je me suis ensuite placée sur la ligne de mon titre "Professionnel responsable de l'activité ou l'atelier", là où je souhaite voire apparaître le mot qui correspond, donc juste après "Professionnel responsable de" à cet endroit j'ai inséré un contrôle de contenu de liste déroulante.
Dans "Propriétés" j'ai coché "Utilisé un style", j'ai sélectionné "Titre 1" dans la liste déroulante.
Dans la même fenêtre en bas "Propriétés de la liste déroulante, j'ai supprimé "d'activité" et "d'atelier" et j'ai ajouté "STYLEREFTitre 1" puis OK
J'ai fait ma Macro avec ALT+F11 depuis ce document en insérant le 1er bloc que tu m'as transmis et après "Update", je suis revenue à la ligne et j'ai rajouté ta 2ème partie "ActiveDocument...." (donc juste avant End Sub") car Exit Sub n'est pas écrit (à moins que c'est ça qu'il faut que j'écrive....
Bref, je vois apparaître sur ma ligne : "Professionnel responsable de STYLEREFTitre 1 !
Help me Marina !
Messages postés
16203
Date d'inscription
mardi 12 juin 2007
Statut
Contributeur
Dernière intervention
13 mai 2020
9 393
Bonsoir,

Tout d'abord, pas le style Titre 1, surtout pas... Il faut un style neutre, pas un style de titre qui sert aux titres. Donc, pour faire simple, tu crées un style de caractères et tu mets un nom simple sans espace.

Ensuite, tu dis "j'ai ajouté "STYLEREFTitre 1""... Mais non ! J'ai dit d'ajouter UN CHAMP... Un champ ce n'est pas du texte.
Pour ajouter un champ : Ctrl +F9 et à l'intérieur des { } on saisit le nom du champ avec la syntaxe
ou bien Insertion => groupe Texte, bouton QuickPart => Champ
Catégorie Liaisons et renvois => Refstyle
ensuite on choisit le style dans la colonne de droite et OK

Au final on doit avoir { STYLEREF mon_style } comme je l'ai dit plus haut (en appuyant sur Alt+F9).

Quant à la macro, si tu as bien pris la deuxième version, il y a bien un Exit Sub deux lignes avant la fin.

En fait, j'avais pas réalisé, mais je me rends compte que tu ne connais pas du tout Word... ça peut être problématique pour la maintenance des modèles.

Pour tout savoir sur les champs, c'est ici :
http://faqword.com/index.php/word/outils-edition/894

m@rina

Messages postés
26
Date d'inscription
jeudi 10 janvier 2019
Statut
Membre
Dernière intervention
24 avril 2020

Bonsoir Marina,
Effectivement, je ne maîtrise par WORD en profondeur.
Donc je n'ai rien touché à ma liste déroulante, dans laquelle j'ai bien mis une balise "liste".
Je me suis placée ensuite sur la ligne de mon titre où je souhaite que le mot "activité ou "atelier" se place.
J'ai bien inséré un champ, en respectant ton mode opératoire. J'ai sélectionné "Police par défaut" et OK.
Je vois bien apparaître STYLEREFNORMAL
Pour la macro, je n'ai mis que ta 1ère partie, mais ça ne fonctionne pas (le mot "activité" ou "atelier" ne se place pas à l'endroit où j'ai mis en place le champ.
Où est l'erreur ???