impression de userform

jopont

XLDnaute Impliqué
Bonjour,

Je viens d'essayer ce code trouvé sur le forum.
Je n'ai pas de document word qui s'ouvre. Je peux seulement enregistrer un fichier .XPS.
J'ai bien cocher la référence microsoft word object library.

Private Declare Sub keybd_event Lib "user32" ( _
ByVal bVk As Byte, ByVal bScan As Byte, ByVal dwFlags As Long, _
ByVal dwExtraInfo As Long)

Private Sub CommandButton1_Click()
'impression de l'USF au centre de la feuille
'http://www.excel-downloads.com/html/French/forum/read.php?f=1&i=121620&t=121620
'testé avec WinXP et Excel2002
'michelxld le 19.10.2004

'nécéssite d'activer la référence microsoft Word xx.x Object Library
Dim Wrd As Word.Application
Dim WrdDoc As Word.Document
Dim Largeur As Single, Hauteur As Single

Largeur = Me.Width 'largeur USF
Hauteur = Me.Height 'hauteur USF

'Copie d'écran de la forme active
keybd_event vbKeySnapshot, 1, 0&, 0&
DoEvents

Set Wrd = CreateObject("Word.Application") 'creation session Word
On Error Resume Next
Set WrdDoc = Wrd.Documents.Add
Wrd.Visible = False 'pour que Word reste masqué pendant l'opération

Wrd.Selection.PasteSpecial 'colle dans le document Word

With WrdDoc.Shapes(1)
'les marges Word sont supposées identiques left/right & top/bottom
'et le format portrait par défaut
'position horizontale de l'image dans le document
.Left = ((595.2755906 - (WrdDoc.PageSetup.LeftMargin * 2)) - Largeur) / 2
'position verticale de l'image dans le document
.Top = ((841.8897638 - (WrdDoc.PageSetup.TopMargin * 2)) - Hauteur) / 2
End With

WrdDoc.PrintOut 'impression

WrdDoc.Close False 'ferme le document Word sans sauvegarde
WrdDoc.Quit 'ferme l'application Word
End Sub
 

Staple1600

XLDnaute Barbatruc
Re : impression de userform

Re

La ligne vient de ton code initial :confused:

J'ai juste changé le False en True

(C'est cette ligne qu'il faut modifier)

Il va de soi qu'il faut aussi mettre en commentaire (pour "voir" Word )
'WrdDoc.Close False 'ferme le document Word sans sauvegarde
'WrdDoc.Quit 'ferme l'application Word
 
Dernière édition:

Staple1600

XLDnaute Barbatruc
Re : impression de userform

Re


Sinon sans passer par Word
(code issu de la FAQ , également écrit par MichelXLD)
https://www.excel-downloads.com/threads/ref-wiki-2-de-michelxld-ce-qui-touche-aux-userform.92357/
Code:
[INDENT]Private Declare Sub keybd_event Lib "user32" ( _[/INDENT][INDENT]byVal bVk As Byte, byVal bScan As Byte, byVal dwFlags As Long, _[/INDENT][INDENT]byVal dwExtraInfo As Long)[/INDENT][INDENT]Private Sub commandButton1_Click()[/INDENT][INDENT]keybd_event vbKeySnapshot, 1, 0&, 0&[/INDENT][INDENT]doEvents[/INDENT][INDENT]Range("A1").Select[/INDENT][INDENT]activeSheet.Paste[/INDENT][INDENT]End Sub[/INDENT]

Tu rajoutes pour imprimer
ActiveSheet.PrintOut
'avant le End Sub
 
Dernière édition:

JNP

XLDnaute Barbatruc
Re : impression de userform

Bonjour le fil :),
A la fin de ta macro
Code:
WrdDoc.PrintOut 'impression
fait une impression de ton fichier Word. L'imprimante par défaut doit être Microsoft XPS Document Writer donc la macro te propose un enregistrement en XPS...
Je ne pense pas que Word sache exporter en JPEG... Ni qu'il existe une imprimante JPEG... Le plus simple serait de passer par une capture d'écran pour obtenir du JPEG.
Bon courage :cool:
 

Fax011

XLDnaute Nouveau
Re : impression de userform

Bonjour à tous,

merci pour toutes ces explications.
Je les ai mises en application et tout cela fonctionne très bien. Cependant y a un hic...

J'ai développé une application Excel pour le boulot et vu que je bosse pour une boite où l'informatique est géré par un service indépendant, ils ont installé un programme qui s'appelle SnaGit. Ce programme sert a faire des printscreen.
Je suis donc passé par un printpreview pour que l'opérateur utilisant l'application soit bien conscient qu'il s'apprete à imprimer un document.
Mon vba stipule donc que je faire un "printscreen" du userform et que je le met sur une feuille de calcul Excel, j'en détermine les paramètres d'impression etc.
Le hic c'est que certaines personnes ont configuré SnaGit comme programme par défaut pour faire des printscreen.
Ce qui a pour conséquence que lorsqu'on clic sur le bouton "Imprimer" le printscreen du userform ne se fait pas.

Existe t il donc du code permetant de contourner ce programme?
j'ai oublié de préciser, je suis sous Excel 2007.


Merci pour votre aide.

Cordialement.
 
Dernière édition:

Statistiques des forums

Discussions
312 215
Messages
2 086 329
Membres
103 183
dernier inscrit
karelhu35