Impression sous condition

Signaler
Messages postés
2
Date d'inscription
lundi 26 octobre 2020
Statut
Membre
Dernière intervention
1 novembre 2020
-
Messages postés
2
Date d'inscription
lundi 26 octobre 2020
Statut
Membre
Dernière intervention
1 novembre 2020
-
Bonjour,

J'ai créé un modèle de document .dot avec 3 champs de formulaire en format texte.

Je cherche un moyen pour empêcher l'impression du document si un des champs n'est pas rempli.
Comment faire ?

Merci pour votre aide :)

2 réponses

Messages postés
16690
Date d'inscription
mardi 12 juin 2007
Statut
Contributeur
Dernière intervention
31 octobre 2020
9 865
Bonjour,

Ce n'est pas aussi qu'il y paraît. En effet, contrairement à Excel, il y a peu d'événements dans Word, et en tous les cas l'événement BeforePrint n'existe pas. Alors on peut le faire en créant un module de classe, j'ai d'ailleurs un exemple sur le sujet ici :
http://faqword.com/index.php/word/gestion-des-macros/87-levenement-ce-sontles-evenements

Mais il s'avère qu'il s'agit d'un événement au niveau de l'application et non au niveau du document. Et donc, tant que ce document sera ouvert, le blocage va fonctionner avec les autres documents... Pas très pratique.

L'autre solution est de surcharger les commandes existantes, et ça c'est plutôt simple. Mais, il y a plusieurs méthodes pour imprimer et il faut toutes les surcharger. Par exemple, tu peux tester la macro suivante à mettre dans un module ordinaire de ton document. Si tu essaie d'imprimer avec le bouton de la barre d'outils Accès rapide, ça va bloquer :

Sub FilePrintDefault()
Dim champ As FormField
For Each champ In ThisDocument.FormFields
Do Until champ.Result <> ""
MsgBox "Vous devez remplir tous les champs du formulaire avant d'envoyer le fichier."
Exit Sub
Loop
Next
ThisDocument.PrintOut
End Sub


Mais si tu imprimes depuis Onglet Fichier, Imprimer, ça ne va pas bloquer.
Donc, si cette macro te convient, je vais rechercher quelles sont les différents noms des commandes actuelles.

m@rina
Messages postés
2
Date d'inscription
lundi 26 octobre 2020
Statut
Membre
Dernière intervention
1 novembre 2020

Merci pour votre réponse rapide, et désolé pour la lenteur de la mienne, j'ai du mal à trouver du temps en ce moment avec le travail à l'hôpital ^^

J'ai essayé votre macro, mais je n'arrive pas à la faire fonctionner.
Dois-je l'insérer dans l'écran VirtualBasic via "insertion-module" ou depuis "développeur-Macro" ?

En tout cas l'idée me plait bien, si ça peut fonctionner déjà avec le raccourci impression ce serait super :)

Merci encore !