Impression sous condition

Dexdor Messages postés 2 Date d'inscription   Statut Membre Dernière intervention   -  
Dexdor Messages postés 2 Date d'inscription   Statut Membre Dernière intervention   -
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 :)
A voir également:

2 réponses

m@rina Messages postés 23933 Date d'inscription   Statut Contributeur Dernière intervention   11 465
 
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 :
https://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
0
Dexdor Messages postés 2 Date d'inscription   Statut Membre Dernière intervention  
 
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 !
0