Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

Macro pour l'impression recto-verso d'un document

10 réponses
Avatar
Sylvilou
Bonjour à tous les experts extraordinaires de ce forum !
Nous avons au bureau un modèle de formulaire (créé et utilisé avec Word 97
sur Office NT - hé oui, nous sommes encore à l'âge de pierre !) que nous
imprimons probablement 20 fois par jour (il nous sert à faire le suivi des
documents que nous traduisons). Ce formulaire doit chaque fois être imprimé
recto-verso, ce que notre imprimante nous accorde sans problème.
Lorsque nous voulons l'imprimer, nous devons entrer dans les options
d'impression de l'imprimante et sélectionner "Recto-verso". Pas de problème
non plus de ce côté-là.
Là où ça devient plus chatouilleux, c'est que si l'on oublie d'aller
désactiver la case "Recto-verso" des options d'impression de l'imprimante,
tous les documents suivants seront imprimés recto-verso, ce qui est bien
normal. Et bien sûr, cela se produit lorsque quelqu'un veut avoir "absolument
tout de suite et que ça saute immédiatement allez ouste" son document. Il
faut alors jeter ce qu'on vient d'imprimer (bonjour la protection de
l'environnement !), retourner désactiver la case recto-verso et redemander
l'impression du document, ce qui, pour un texte d'une centaine de page, peut
prendre quelque cinq minutes et faire friser ou défriser d'impatience bien
des gens qui ne se gênent pas pour nous traiter de parfaits imbéciles.
Dans le but de sauver nos âmes des blasphèmes et malédictions qui se
bousculent à nos lèvres dès que le client a franchi les portes avec son
document, pourriez-vous me dire s'il est possible de créer une macro qui
s'intégrerait aux fonctions d'impression de ce modèle seulement et qui
permettrait d'imprimer ce formulaire recto-verso sans qu'on ait à retourner
bidouiller les options d'impression chaque fois ?
Merci de vos lumières, et encore merci d'avoir lu jusque-là !

--
Sylvie

10 réponses

Avatar
Geo
Bonjour Sylvilou

On peut toujours bidouiller un truc en vba.
Le choix de la méthode est quand même pas évident.
On pourrait "surcharger" la fonction d'impression par une macro on l'on
positionnerait le recto-verso selon le nom du document.
ou faire une macro évènementielle qui fait la même chose, ça plairait plus
à Jean-Guy.
Ou dans un AutoOpen du formulaire mettre en recto verso et dans
l'autoClose enlever le recto verso, c'est plus simple mais ça suppose qu'on
n'imprime pas en catastrophe un autre document en recto alors que le
formulaire est ouvert.
Mais il y a sans doute d'autres solutions.

--

A+
Avatar
Anacoluthe
Bonjour !

'Geo' nous a écrit ...
On peut toujours bidouiller un truc en vba.
Le choix de la méthode est quand même pas évident.


Il faut une macro dans le formulaire (un bouton-macro par exemple)
qui 1) active le recto-verso 2) Imprime 3) Désactve le recto-verso.

S'il s'agit d'une imprimante sans recto-verso, c'est facile
puisque Word gère le retournement du recto-verso /manuel/ .
Si c'est une imprimante qui fait le recto-verso ce qui
est probable chez Sylvie c'est un peu plus compliqué :
http://support.microsoft.com/KB/230743

Anacoluthe
« Rien ne sert de se retourner
pour attraper les idées qu'on a derrière la tête. »
- Elie SEMOUN

Avatar
Geo
Bonjour Anacoluthe


Bonjour !

'Geo' nous a écrit ...
On peut toujours bidouiller un truc en vba.
Le choix de la méthode est quand même pas évident.


Il faut une macro dans le formulaire (un bouton-macro par exemple)
qui 1) active le recto-verso 2) Imprime 3) Désactve le recto-verso.


Décidément il va falloir que je me mette aux formulaires car là c'est
effectivement bien adapté.
Encore qu'il faille remettre l'option recto seule à la fin.
Quand je serai à la retraite, peut-être encore qu'ils risquent bien de tout
changer dans la prochaine version.

S'il s'agit d'une imprimante sans recto-verso, c'est facile


J'ai bien peur que non car elle ne mettraient pas à la poubelle le document
imprimé recto-verso par erreur.

Si c'est une imprimante qui fait le recto-verso ce qui
est probable chez Sylvie c'est un peu plus compliqué :
http://support.microsoft.com/KB/230743


Ouiais, attendons la réponse de Sylvie.

« Rien ne sert de se retourner
pour attraper les idées qu'on a derrière la tête. »


Pourquoi ? tu gères pas le recto-verso ?

--

A+


Avatar
Sylvilou
Bonjour,
Oui, nous avons une imprimante qui fait le recto-verso, et c'est pourquoi
on doit activer cette fonction uniquement pour ce formulaire.
J'ajouterai aussi qu'on n'a pas besoin de sauvegarder le formulaire : on
n'a qu'à ouvrir le modèle, ce qui nous donne un document sans nom, on remplit
les champs avec nom du client, de l'objet, les numéros de dossier, le nom du
traducteur, du réviseur, la date d'arrivée, d'échéance et d'autres données
tout aussi fascinantes qui meublent nos journées... Lorsque le formulaire est
imprimé, on ferme le document sans rien sauvegarder.
Anacoluthe, je crois que ta suggestion d'avoir un bouton intégré dans le
modèle qui activerait la fonction recto-verso et la remettrait en recto
seulement après impression est une sapré bonne idée. Je suis allée voir sur
le site que tu m'as indiqué (ça semble un peu compliqué, mais on va y aller
ligne par ligne et on va y arriver !) et je vais essayer de jouer là-dedans
un matin quand je serai de retour au bureau dans deux semaines.
Merci d'avoir fouillé pour moi, je ne savais absolument pas où aller !
Surtout qu'une "éminence grise" (hum !) du soutien technique au bureau m'a
affirmé qu'une macro ou fonction du genre, spécifique à un modèle en
particulier, était impossible à réaliser... J'ai tellement hâte de lui mettre
les résultats sous les yeux !
Je vous tiendrai tous au courant, bien sûr. À dans deux semaines !

Sylvie
"Dans la vie, il y a de bons moments... et de fichus quarts d'heure..."
- Ninon de Lenclos


Bonjour Anacoluthe


Bonjour !

'Geo' nous a écrit ...
On peut toujours bidouiller un truc en vba.
Le choix de la méthode est quand même pas évident.


Il faut une macro dans le formulaire (un bouton-macro par exemple)
qui 1) active le recto-verso 2) Imprime 3) Désactve le recto-verso.


Décidément il va falloir que je me mette aux formulaires car là c'est
effectivement bien adapté.
Encore qu'il faille remettre l'option recto seule à la fin.
Quand je serai à la retraite, peut-être encore qu'ils risquent bien de tout
changer dans la prochaine version.

S'il s'agit d'une imprimante sans recto-verso, c'est facile


J'ai bien peur que non car elle ne mettraient pas à la poubelle le document
imprimé recto-verso par erreur.

Si c'est une imprimante qui fait le recto-verso ce qui
est probable chez Sylvie c'est un peu plus compliqué :
http://support.microsoft.com/KB/230743


Ouiais, attendons la réponse de Sylvie.

« Rien ne sert de se retourner
pour attraper les idées qu'on a derrière la tête. »


Pourquoi ? tu gères pas le recto-verso ?

--

A+






Avatar
Geo
Bonjour Sylvilou


Bonjour,
Oui, nous avons une imprimante qui fait le recto-verso, et c'est
pourquoi on doit activer cette fonction uniquement pour ce formulaire.
J'ajouterai aussi qu'on n'a pas besoin de sauvegarder le formulaire
: on n'a qu'à ouvrir le modèle, ce qui nous donne un document sans
nom, on remplit les champs avec nom du client, de l'objet, les
numéros de dossier, le nom du traducteur, du réviseur, la date
d'arrivée, d'échéance et d'autres données tout aussi fascinantes qui
meublent nos journées... Lorsque le formulaire est imprimé, on ferme
le document sans rien sauvegarder. Anacoluthe, je crois que ta
suggestion d'avoir un bouton intégré dans le modèle qui activerait la
fonction recto-verso et la remettrait en recto seulement après
impression est une sapré bonne idée. Je suis allée voir sur le site
que tu m'as indiqué (ça semble un peu compliqué, mais on va y aller
ligne par ligne et on va y arriver !) et je vais essayer de jouer
là-dedans un matin quand je serai de retour au bureau dans deux
semaines. Merci d'avoir fouillé pour moi, je ne savais absolument pas
où aller ! Surtout qu'une "éminence grise" (hum !) du soutien
technique au bureau m'a affirmé qu'une macro ou fonction du genre,
spécifique à un modèle en particulier, était impossible à réaliser...
J'ai tellement hâte de lui mettre les résultats sous les yeux ! Je
vous tiendrai tous au courant, bien sûr. À dans deux semaines !


Merci pour ces précisions, deux petites choses :
Une macro se met où on veut : le modèle de base (normal.dot), un modèle
complémentaire (répertoire de démarrage) ou le document lui-même.
Là il me semble qu'il vaut mieux la mettre dans le formulaire.
Pour repasser en mode Normal, j'utiliserais plutôt l'AutoClose, au moins on
est (presque) certain du repassage en mode recto seul.
Je dis "presque" car ça ne se produit pas si Word se plante ni tant que le
formulaire reste ouvert.
On peut évidemment mettre un bouton qui lance aussi l'autoClose.
Tant qu'à faire pourquoi ne pas écrire une macro "imprimer" qui met
l'imprimante en recto-verso, imprime et remet le recto?

--

A+

Avatar
Anacoluthe
Bonjour !

'Geo' nous a écrit ...
Tant qu'à faire pourquoi ne pas écrire une macro "imprimer" qui met
l'imprimante en recto-verso, imprime et remet le recto?


Je me demandais si une solution toute simple ne serait pas
de définir deux imprimantes dans le panneau de configuration
l'une imprimant recto, l'autre recto-verso.
La macro pour imprimer le formulaire serait alors:

Sub FichierImprimerDéfaut()
' Surcharge le bouton Imprimer
Dim ImprimanteUsuelle As String
ImprimanteUsuelle = ActivePrinter
ActivePrinter = "XYZ-Recto-Verso"
ActiveDocument.PrintOut
ActivePrinter = ImprimanteUsuelle
End Sub

Cette macro utilise le principe de surcharge des commandes Word.
Elle doit donc porter exactement ce nom-là (ou FilePrintDefault).
Placée dans le formulaire, elle permettrait d'imprimer avec
le bouton 'Imprimer (XYZ)' de la barre d'outils 'Standard'

Toute la question est de savoir si vous pouvez définir un
deuxième pilote d'imprimante recto-verso à votre printeuse...

Anacoluthe
« Rien ne sert de se retourner
pour attraper les idées qu'on a derrière la tête. »
- Elie SEMOUN

Avatar
Sylvilou
Bonjour à tous,
Je suis de retour au bureau cette semaine, et j'essaie de mettre en
pratique tous vos bons conseils.
Pas facile !
J'ai cru que la chose la plus simple, avec mon bon vieux Word 97, serait
d'enregistrer une macro qui serait attachée à mon modèle de formulaire.
J'ai donc désactivé la protection du formulaire, et j'ai fait :
Macro, Nouvelle Macro - je l'ai nommée Impr_Recto_Verso
Je l'ai affectée dans le menu déroulant Fichier, juste en dessous
d'imprimer, et je lui ai aussi affecté des touches de raccourci (Alt+PR).
Dans l'enregistrement de la macro, j'ai effectué avec le clavier (et non
pas avec la souris) tout le cheminement pour aller activer l'impression
recto-verso, puis pour la désactiver après impression.
Fin de l'enregistrement.
Je sauvegarde mon formulaire, je le ferme, je sors de Word pour être bien
sûr que tout se "place bien aux bons endroits" (on ne sait jamais).
Je retourne dans Word, j'ouvre un document basé sur le formulaire et
yessss ! La macro fonctionne à merveille, mais zut, voilà que je me rends
compte que j'ai oublié de réactiver la protection du formulaire.
Je ferme ce document, je retourne dans mon modèle de formulaire, je
réactive la protection. Et... vous avez deviné, la macro ne fonctionne plus !
Voici le texte de la macro, tel qu'il figure dans le Visual Basic:

Sub Impr_Recto_Verso()
'
' Impr_Recto_Verso Macro
' Impression Recto-Verso
' "&chr(10)&"Macro enregistrée le 18/01/05 par Sylvie X
'
Application.Run MacroName:="[nom de la
société]Project.FileOperations.FilePrint"
Application.Run MacroName:="[nom de la
société]Project.FileOperations.FilePrint"
End Sub

Qu'est-ce que j'ai fait de travers ? Vous avez une idée ?
Merci de vous pencher encore une fois sur mon problème !

Sylvie
Avatar
Anacoluthe
Bonjour !

'Sylvilou' nous a écrit ...
Sub Impr_Recto_Verso()
'
' Impr_Recto_Verso Macro
' Impression Recto-Verso
' "&chr(10)&"Macro enregistrée le 18/01/05 par Sylvie X
'
Application.Run MacroName:="[nom de la
société]Project.FileOperations.FilePrint"
Application.Run MacroName:="[nom de la
société]Project.FileOperations.FilePrint"
End Sub
Qu'est-ce que j'ai fait de travers ? Vous avez une idée ?
Merci de vous pencher encore une fois sur mon problème !


Impossible de vous répondre : cette macro lance deux fois (?)
une macro intitulée FilePrint (son nom est celui d'une
macro de surchage* de la commande Fichier / imprimer )
placée dans le module 'FileOpérations' de votre projet.
Avec ça, on ne va donc pas très loin... :-)
Si vous n'êtes pas l'auteuse de cette FilePrint,
contactez votre service informatique : ils ont des
choses à vous avouer sur votre Word...

Anacoluthe
« Je ne cherche pas à connaître les réponses,
je cherche à comprendre les questions. »
- CONFUCIUS

Avatar
Sylvilou
Bonjour Anacoluthe,
Je me demande plutôt si c'est ma faute, cette répétition de
"FileOperation"... Lorsque j'ai enregistré la macro, j'ai fait ceci :
Fichier, Imprimer, Propriétés de l'imprimante - et coché la case "Both Sides".
J'ai cliqué sur OK, puis encore sur OK, ce qui a démarré l'impression et
fermé la fenêtre des options d'impression.
Ensuite j'ai fait:
Fichier, Imprimer, Propriétés de l'imprimante - désactivé la case "Both
Sides".
J'ai cliqué sur OK, puis sur Fermer, ce qui a fermé la fenêtre des options
d'impression.
Est-ce que ça explique la répétition de la commande ou bien alors les gens
de nos services informatiques sont vraiment des serpents dans l'herbe ?

Sylvie



Bonjour !

'Sylvilou' nous a écrit ...
Sub Impr_Recto_Verso()
'
' Impr_Recto_Verso Macro
' Impression Recto-Verso
' "&chr(10)&"Macro enregistrée le 18/01/05 par Sylvie X
'
Application.Run MacroName:="[nom de la
société]Project.FileOperations.FilePrint"
Application.Run MacroName:="[nom de la
société]Project.FileOperations.FilePrint"
End Sub
Qu'est-ce que j'ai fait de travers ? Vous avez une idée ?
Merci de vous pencher encore une fois sur mon problème !


Impossible de vous répondre : cette macro lance deux fois (?)
une macro intitulée FilePrint (son nom est celui d'une
macro de surchage* de la commande Fichier / imprimer )
placée dans le module 'FileOpérations' de votre projet.
Avec ça, on ne va donc pas très loin... :-)
Si vous n'êtes pas l'auteuse de cette FilePrint,
contactez votre service informatique : ils ont des
choses à vous avouer sur votre Word...

Anacoluthe
« Je ne cherche pas à connaître les réponses,
je cherche à comprendre les questions. »
- CONFUCIUS




Avatar
Anacoluthe
Bonjour Sylvie !

'Sylvilou' nous a écrit ...
Bonjour Anacoluthe,
Je me demande plutôt si c'est ma faute, cette répétition de
"FileOperation"... Lorsque j'ai enregistré la macro, j'ai fait ceci :
Fichier, Imprimer, Propriétés de l'imprimante - et coché la case "Both Sides".
J'ai cliqué sur OK, puis encore sur OK, ce qui a démarré l'impression et
fermé la fenêtre des options d'impression.
Ensuite j'ai fait:
Fichier, Imprimer, Propriétés de l'imprimante - désactivé la case "Both
Sides".
J'ai cliqué sur OK, puis sur Fermer, ce qui a fermé la fenêtre des options
d'impression.
Est-ce que ça explique la répétition de la commande ou bien alors les gens
de nos services informatiques sont vraiment des serpents dans l'herbe ?


Lorsque vous avez enregistré votre macro celle-ci n'a pas
enregistré vos opérations sur les propriétés de l'imprimante
(le fait d'avoir coché 'Both side') : c'est normal, car ceci
ne fait pas partie de Word, et l'enregistreur VBA n'y a pas accès.

Dans un post précédent j'ai expliqué ce que vous pouvez
enregistrer : l'impression sur une imprimante plutôt que sur
une autre, ce qui nécessiterait de définir pour la même
imprimante un version recto et une version recto-verso.
La macro Word peut enregistrer
Fichier / Imprimer / Imprimante - Nom: ....
mais pas ce que vous entrez après // Propriétés

Vous vous retrouvez alors à enregistrer juste deux fois la
commande d'impression. Et c'est là que vous découvrez que
la commande a été détournée par votre service informatique...
Des serpents dans l'herbe ? Ma foi je le penserais aussi :-)

Anacoluthe
« Qui veut devenir dragon doit manger beaucoup de petits serpents. »
- Proverbe chinois