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 -
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 :)
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:
- Impression sous condition
- Spouleur d'impression - Guide
- Impression livret a5 - Guide
- Excel cellule couleur si condition texte - Guide
- Impression ecran samsung - Guide
- Impression miroir ✓ - Forum MacOS
2 réponses
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 :
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
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
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 !
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 !