Interdire un champ de formulaire vide (Word)

Résolu/Fermé
halfernet Messages postés 284 Date d'inscription jeudi 10 mai 2007 Statut Membre Dernière intervention 3 avril 2020 - 6 juil. 2011 à 11:30
halfernet Messages postés 284 Date d'inscription jeudi 10 mai 2007 Statut Membre Dernière intervention 3 avril 2020 - 12 juil. 2011 à 16:34
Bonjour,

Je souhaiterais créer un formulaire word mais je voudrais savoir si il est possible d'interdire l'impression du document tant qu'un champ est encore vide

Par avance, merci


A voir également:

8 réponses

halfernet Messages postés 284 Date d'inscription jeudi 10 mai 2007 Statut Membre Dernière intervention 3 avril 2020 27
6 juil. 2011 à 15:25
Merci pour la réponse,

Le système fonctionne parfaitement

cependant, (sur le coup je n'y ai pas pensé) comme ce formulaire doit être diffusé à un public assez large, la macro risque de ne pas fonctionner chez certaines personnes qui ont un niveau de sécurité élevé vis a vis des macros.

N'y a t-il pas de possibilités sans macro ?

Merci
0
m@rina Messages postés 20065 Date d'inscription mardi 12 juin 2007 Statut Contributeur Dernière intervention 23 avril 2024 11 271
6 juil. 2011 à 18:29
C'est sûr que si c'est à distribuer, ce n'est pas simple.
Et sinon, c'est impossible sans macro.

m@rina
0
halfernet Messages postés 284 Date d'inscription jeudi 10 mai 2007 Statut Membre Dernière intervention 3 avril 2020 27
Modifié par halfernet le 8/07/2011 à 08:09
Salut, j'ai trouvé une solution par moi même,

j'ai réécris tout le texte, les mises en forme, les champs, etc... en mode macro,

ce qui fait que si le client n'a pas les macros activées, le document ne se génère pas, et un message sous forme de texte invite a activer les macros !

J'avoue, c'est un peu barbare mais ça fonctionne !

C'est quand même dommage que word ne l'integre pas de lui même

Merci m@rina pour ton tuto, car du coup je vais l'utiliser.

voici le lien pour un exemple http://www.cijoint.fr/cjlink.php?file=cj201107/cijMBet30z.doc

A tout problèmes, il y a une solution.
Si il n'y a pas de solutions, c'est qu'il n'y a pas de problèmes.
0
halfernet Messages postés 284 Date d'inscription jeudi 10 mai 2007 Statut Membre Dernière intervention 3 avril 2020 27
9 juil. 2011 à 09:57
Bonjour, je reviens vers vous pour une nouvelle aide

je souhaiterais utiliser une macro qui me permette :

que quand on clique sur un champ de formulaire, une boite de dialogue s'ouvre, permettant a la personne d'inscrire dans le champ, et quand il clique sur OK le champ se supprime et il ne reste que ce qu'a écris la personne.

P.S. je suis sous Word 2003

Merci
0
m@rina Messages postés 20065 Date d'inscription mardi 12 juin 2007 Statut Contributeur Dernière intervention 23 avril 2024 11 271
9 juil. 2011 à 18:29
Bonjour,

Je ne comprends pas la démarche.
Un champ permet d'écrire dedans directement, pourquoi faudrait-il une boîte de dialogue en plus ? Par ailleurs, si le champ est supprimé une fois complété, la personne ne pourra pas corriger si elle s'est trompée.

En fait, soit tu te limites aux champs, soit tu te lances dans les Userforms. Démarche différente.
Regarde ici :
http://faqword.com/index.php/word-tutoriels/toutes-versions/92-une-userform-trop-facile.html

m@rina

0

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

Posez votre question
halfernet Messages postés 284 Date d'inscription jeudi 10 mai 2007 Statut Membre Dernière intervention 3 avril 2020 27
Modifié par halfernet le 11/07/2011 à 10:51
Salut, Re

effectivement je vais essayer avec un userform, cependant dans la faq il me manque quelques précisions.


dans le document, je crée un signet que je vais nommer "Scivilite" avec l'outil
formulaires qui contient une liste déroulante pour "Madame, Mademoiselle, Monsieur" et a coté un autre signet que je vais nommer "Snom" pour le nom de la personne.

Jusque là je comprends

Ensuite, je vais dans les macros, je crée mon UserForm1 avec 2 champs liste déroulante et texte qui seront respectivement "Ccivilite" et "Cnom" et 2 boutons. un pour imprimer le formulaire et l'autre pour l'enregistrer.

et là, je suis coincé, je n'arrive pas a faire la liaison entre les signets et les champs du Userform (pour les boutons, pas de problème)

je me débrouille, mais ne maitrise pas très bien le code VBA, si je pouvais avoir une petite explication ça me serais d'une grande utilité.

Par avance Merci

A tout problèmes, il y a une solution.
Si il n'y a pas de solutions, c'est qu'il n'y a pas de problèmes.
0
m@rina Messages postés 20065 Date d'inscription mardi 12 juin 2007 Statut Contributeur Dernière intervention 23 avril 2024 11 271
11 juil. 2011 à 20:12
Bonsoir,

Mais si tu utilises une Userform avec des listes dérulantes, tu n'as pas à doubler les listes déroulantes dans le document ! C'est l'un ou l'autre...

m@rina
0
halfernet Messages postés 284 Date d'inscription jeudi 10 mai 2007 Statut Membre Dernière intervention 3 avril 2020 27
12 juil. 2011 à 16:34
Re

Oui, j'ai pas été très clair mais c'est bien sur ce que j'ai fait, Cependant

Les UserForms sont encore un peut trop obscurs pour moi pour l'instant.

Je vais m'en tenir a la première solution

Merci encore
0
m@rina Messages postés 20065 Date d'inscription mardi 12 juin 2007 Statut Contributeur Dernière intervention 23 avril 2024 11 271
6 juil. 2011 à 14:07
Bonjour,

Malheureusement, et contrairement à Excel, il existe très peu d'événements dans le VBA de Word.
Il faut alors passer par les modules de classe. Et, là tu as de la chance, j'ai sur mon site un tuto sur les événements, avec en particulier l'explication pour interdire l'impression sous condition.
C'est ici :
https://faqword.com/index.php/word-tutoriels/toutes-versions/87-levenement-ce-sontles-evenements.html

Tu y trouveras un exemple concret "Permettre d'imprimer un document sous condition".

Quant à la condition, tu peux mettre ceci à la place de l'exemple :

For Each champ In ActiveDocument.FormFields
If champ.Result = "" Then
Imprimer=False
End If
Next


m@rina
-1