Imprimer L'USF à l'écran sans l'arrière plan...

C

Christian

Guest
Bonsoir à tout le forum,

Je souhaite imprimer l' USF à l'écran avec son contenu bien sûr mais sans l'arrière plan, quelqu'un a-t-il une idée?.

Par avance merci pour votre aide.

Bien amicalement
Christian
 
C

Christian

Guest
Bonsoir à tout le forum,

Merci Michel pour le lien, mais ça ne m'aide que partiellement en effet cette macro n'imprime pas le titre des "Frame".

Je suis donc toujours preneur...

Bien amicalement
Christian
 
J

JeanJean

Guest
Salut Christian,

Tu peux utiliser simultanément les touches "AltGr" et "Imprécran".
Cette manip permet de ne capturer que la fenètre.

Il te suffit ensuite de la coller dans une application et de l'imprimer.

Mais je ne sais pas si on peut le faire en macro.

A+
Jean
 
M

michel

Guest
bonjour Christian , bonjour Jeanjean

par macro cela pourrait donner :


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
'adapté de 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
Dim Couleur As String

Couleur = Me.BackColor ' 'couleur originale de l'USF
Largeur = Me.Width 'largeur USF
Hauteur = Me.Height 'hauteur USF
Me.BackColor = &H80000009 ' passe la couleur de find de l'USF en blanc
DoEvents

'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
Me.BackColor = Couleur 'reinitialise la couleur d'origine de l'USF

End Sub


remarque , je n'ai pas réussi à le faire fonctionner avec Excel 97 , ( non testé pour Excel2000 )

bon apres midi
MichelXld
 

Discussions similaires