Précédent   Forum des professionnels en informatique > Logiciels > Microsoft Office > Word
Word Forum d'entraide sur le traitement de texte Microsoft Word
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 04/09/2007, 22h51   #1
Candidat au titre de Membre du Club
 
Inscription : août 2006
Messages : 41
Détails du profil
Informations forums :
Inscription : août 2006
Messages : 41
Points : 14
Points : 14
Par défaut papier entete et bac

Bonjour !
Un progiciel me génère plusieurs contrat dans le même document word et chaque contrat fait 3 pages, le nombre de contrat varie à chaque fois.
Par exemple, le logiciel me génère 3 contrats, j'ai donc un document word de 9 pages. Pour imprimer ces contrats je dispose d'un imprimante à deux bac.
Le 1er bac contient du papier entête avec le logo de ma socièté et le second du papier blanc. Je cherche à imprimer la première page de chaque contrat avec le bac 1 (le papier avec entête) les autres pages avec le bac 2 (papier blanc)
dans mon exemple de 3 contrats / 9 pages, j'imprime d'abord les pages 1-4-7 sur le bac1 puis les autres pages sur le bac2. Cette opération manuelle est quotidienne et fatidieuse quand le nombre de contrat est important.
Je cherche une idée, un truc, une astuce pour augmenter ma productivité.
J'ai essayé de séparer chaque contrat par un saut de section et dans les options de mise en page / onglet papier indique bac1 pour la première page et le bac 2 pour les suivantes mais seule la page1 du contrat 1 s'imprime depuis le bac2, tout le reste sort sur le bac 2 !!!

Je peux peut-être enregistrer une macro car je ne sais pas les écrire mais le nombre de contrat étant variable cela pose problème!
Pouvez-vous m'aider ?
Merci beaucoup !
seb nantes est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 05/09/2007, 09h03   #2
Responsable Word

 
Avatar de Heureux-oli
 
Homme Olivier Lebeau
Contrôleur d'industrie
Inscription : février 2006
Messages : 17 354
Détails du profil
Informations personnelles :
Nom : Homme Olivier Lebeau
Âge : 47
Localisation : Belgique

Informations professionnelles :
Activité : Contrôleur d'industrie
Secteur : Aéronautique - Marine - Espace - Armement

Informations forums :
Inscription : février 2006
Messages : 17 354
Points : 29 270
Points : 29 270
On devrait pouvoir le faire en VBA.
Code :
ActiveDocument.ActiveWindow.PrintOut Range:=wdPrintFromTo, from:="3", to:="3"
Avec une boucle

Code :
1
2
3
For n = 1 to ActiveDocument.ActiveWindow.Panes(1).Pages.Count Step 3
ActiveDocument.ActiveWindow.PrintOut Range:=wdPrintFromTo, from:=n, to:=n
Next n
Il faut encore modifier un peu la méthode PrintOut pour choisir le bac et le reste du document.
__________________
J'ai pas encore de décodeur, alors, postez en clair ! Comment mettre une balise de code ?
Débutez en VBA

Mes articles


Dans un MP, vous pouvez me dire que je suis beau, ... mais si c'est une question technique je ne la lis pas ! Vous êtes prévenus !
Heureux-oli est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 05/09/2007, 12h36   #3
Candidat au titre de Membre du Club
 
Inscription : août 2006
Messages : 41
Détails du profil
Informations forums :
Inscription : août 2006
Messages : 41
Points : 14
Points : 14
Merci !
Je pense que c'est déjà 80% de la solution,
Je vois le principe mais pour moi vba = chinois !
Est-il possible da faire un algorithme du genre :

Code :
1
2
3
4
5
For page=1 to 9 step 3
{print page    on bac1
  print page+1 on bac2
  print page+2 on bac2}
next
avec, si possible, remplacé 9 par une variable contenant le nombre total de page?

Je me doutait que VBA serait la solution, ce n'est pas de la mauvaise volonté mais du manque de temps et de l'ignorance sur VBA : je ne serais jamais écrire cette macro seul...

Encore merci.
seb nantes est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 05/09/2007, 12h41   #4
Responsable Word

 
Avatar de Heureux-oli
 
Homme Olivier Lebeau
Contrôleur d'industrie
Inscription : février 2006
Messages : 17 354
Détails du profil
Informations personnelles :
Nom : Homme Olivier Lebeau
Âge : 47
Localisation : Belgique

Informations professionnelles :
Activité : Contrôleur d'industrie
Secteur : Aéronautique - Marine - Espace - Armement

Informations forums :
Inscription : février 2006
Messages : 17 354
Points : 29 270
Points : 29 270
Petite explication

Code :
1
2
3
For n = 1 to ActiveDocument.ActiveWindow.Panes(1).Pages.Count Step 3
ActiveDocument.ActiveWindow.PrintOut Range:=wdPrintFromTo, from:=n, to:=n
Next n
Avec
ActiveDocument.ActiveWindow.Panes(1).Pages.Count
qui donne le nombre de pages du document

si le document fait 9 pages, le valeur renvoyée sera 9

ActiveDocument.ActiveWindow.PrintOut Range:=wdPrintFromTo, from:=n +1, to:=n +2

Imprimera les autres pages, maintenant, il faut chercher les paramètres qu'il faut utiliser pour ton imprimante.
__________________
J'ai pas encore de décodeur, alors, postez en clair ! Comment mettre une balise de code ?
Débutez en VBA

Mes articles


Dans un MP, vous pouvez me dire que je suis beau, ... mais si c'est une question technique je ne la lis pas ! Vous êtes prévenus !
Heureux-oli est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 05/09/2007, 14h11   #5
Candidat au titre de Membre du Club
 
Inscription : août 2006
Messages : 41
Détails du profil
Informations forums :
Inscription : août 2006
Messages : 41
Points : 14
Points : 14
merci pour ces explications je vais essayer de trouver.
On me parle aussi de cette solution :

Avant d'imprimer se rendre dans le menu Fichier / Mise en page / Onglet Papier,
sélectionner le bac à entête pour la partie Première page et l'autre bac pour la partie Autres Pages,
vérifier que l'option Appliquer à Tout le document est bien sélectionnée, valider par OK puis imprimer.
(IL NE FAUT PAS UTILISER APPLIQUER A CETTE SECTION MAIS A TOUT LE DOCUMENT!)

Je vais essayer et je vous tiens informé !
seb nantes est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 05/09/2007, 14h31   #6
Responsable Word

 
Avatar de Heureux-oli
 
Homme Olivier Lebeau
Contrôleur d'industrie
Inscription : février 2006
Messages : 17 354
Détails du profil
Informations personnelles :
Nom : Homme Olivier Lebeau
Âge : 47
Localisation : Belgique

Informations professionnelles :
Activité : Contrôleur d'industrie
Secteur : Aéronautique - Marine - Espace - Armement

Informations forums :
Inscription : février 2006
Messages : 17 354
Points : 29 270
Points : 29 270
Ça va fonctionner, mais c'est à faire pour chaque document, alors que la macro peut se résumer à un bouton.

En plus, il faudra faire une section par contrat, sans ça, il n'y aura que la première page qui sera imprimée différemment.
__________________
J'ai pas encore de décodeur, alors, postez en clair ! Comment mettre une balise de code ?
Débutez en VBA

Mes articles


Dans un MP, vous pouvez me dire que je suis beau, ... mais si c'est une question technique je ne la lis pas ! Vous êtes prévenus !
Heureux-oli est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 09h32.


 
 
 
 
Partenaires

Hébergement Web