Impression sous condition

Fermé
Dexdor Messages postés 2 Date d'inscription lundi 26 octobre 2020 Statut Membre Dernière intervention 1 novembre 2020 - 26 oct. 2020 à 17:20
Dexdor Messages postés 2 Date d'inscription lundi 26 octobre 2020 Statut Membre Dernière intervention 1 novembre 2020 - 1 nov. 2020 à 19:12
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

m@rina Messages postés 20061 Date d'inscription mardi 12 juin 2007 Statut Contributeur Dernière intervention 22 avril 2024 11 269
27 oct. 2020 à 14:02
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 lundi 26 octobre 2020 Statut Membre Dernière intervention 1 novembre 2020
1 nov. 2020 à 19:12
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