Précédent   Forum des professionnels en informatique > Logiciels > Microsoft Office > Word > VBA 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 20/07/2007, 15h00   #1
Membre confirmé
 
Inscription : novembre 2006
Messages : 337
Détails du profil
Informations forums :
Inscription : novembre 2006
Messages : 337
Points : 260
Points : 260
Par défaut parametrer l'impression vba

Bonjour, je developpe une p'tite application sous word, et je me confronte a un probleme,
voila je souhaite faire ne sorte que l'utilisateur ne puisse pas avoir acces à l'interface d'impression. j'ai un bout de code qui me permet de savoir si l'impression a été demandé :

Code :
1
2
3
4
5
6
 
Public WithEvents ModeleEvenement As Word.Application
 
Private Sub ModeleEvenement_DocumentBeforePrint(ByVal Doc As Document, Cancel As Boolean)
 
End Sub
la j'ai deja un probleme, si l'utilisateur clique sur le bouton raccourcis dans le menu, il ne passe pas dans cette fonction, d'ou ma premiere question : comment faire pour detecter l'appui sur le bouton imprimer dans le menu. ?

ensuite, je souhaiterais configurer l'impression, c'est a dire indiquer que je veut 6 copies, non assemblées, depuis le tiroir 3. pour cela, j'ai trouve du code mais il ne fonctionne pas reelement...
Code :
1
2
3
4
5
6
7
8
 
 
ActiveDocument.PrintOut (copies = 6)
 
With ActiveDocument.PageSetup
.FirstPageTray = "Tiroir 3"
.OtherPagesTray = "Tiroir 3"
'End With
D'ou ma deuxieme question : qu'elles sont les commandes permettant de configurer l'impression comme je le veut ??

merci de toutes les reponses que vous pourrez me donner, ca fait 3 heures que je galère...
boubounne est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 20/07/2007, 15h38   #2
Membre confirmé
 
Inscription : novembre 2006
Messages : 337
Détails du profil
Informations forums :
Inscription : novembre 2006
Messages : 337
Points : 260
Points : 260
bon apres quelques tests, j'ai trouvé ca comme code qui marche :
Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
 
Public WithEvents ModeleEvenement As Word.Application
 
Private Sub ModeleEvenement_DocumentBeforePrint(ByVal Doc As Document, Cancel As Boolean)
 
    MsgBox "print"
 
    SendKeys "{Esc}"
    SendKeys "{Esc}"
    Options.DefaultTray = "Bac 3"
    ActiveDocument.PrintOut copies:=6
 
End Sub
si ca peut aider, par contre, je n'arrive pas a trouver comment on indique que la copies doit être en assemblées ou pas. Si quelqu'un a un indice...
boubounne est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 20/07/2007, 15h51   #3
Membre confirmé
 
Inscription : novembre 2006
Messages : 337
Détails du profil
Informations forums :
Inscription : novembre 2006
Messages : 337
Points : 260
Points : 260
Voila, j'ai créé mon topic et je me suis répondu comme un grand
pour la fonction finale ca donne ca :
Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
 
Public WithEvents ModeleEvenement As Word.Application
 
'procedure se lancant a la demande d'impression par l'utilisateur (raccourci ou bouton de menu)
Private Sub ModeleEvenement_DocumentBeforePrint(ByVal Doc As Document, Cancel As Boolean)
 
    'evite la premiere boite de dialogue
    SendKeys "{Esc}"
    'evite que l'utilisateur puisse voir les parametres d'impression
    SendKeys "{Esc}"
    'inndique que l'on souhaite imprimer dans le bac numero 3 (pas testé)
    Options.DefaultTray = "Bac 3"
    'lance l'impression selon 2 parametres : le nombres de copies (copies) et l'assemblages des copies (collate)
    ActiveDocument.PrintOut copies:=6, collate:=True
    'collate prend true ou false selon que l'on veut que les pages soient assamblées ou non, cette otpion n'a pas été testé
 
End Sub
Si ca interresse quelqu'un qu'il se manifeste... merci quand même...
boubounne 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 22h52.


 
 
 
 
Partenaires

Hébergement Web