CodeS-SourceS
Rechercher un code, un tuto, une réponse

Imprimer une form n'importe ou sur une feuille (mise à jour)

Soyez le premier à donner votre avis sur cette source.

Snippet vu 18 360 fois - Téléchargée 24 fois

Contenu du snippet

L'idée n'est pas de moi, je l'ai pris sur le site ici. Je crois l'avoir fait pour une compréhension facile pour tous. C'est pourquoi je le met ici.

Pour imprimer un formulaire centrer sur une feuille ou en changeant la Largeur, Hauteur, DebutX, DebutY pour imprimer n'importe ou sur la feuille.
1- Copier ceci dans le formulaire à imprimer.
2- Mettre 2 PictureBox mommé Picture1 et Picture2 sur une feuille.
3- Mettre Picture1.Visible et Picture2.Visible à False.
4- Démarrer la projet et clicquez sur le formulaire pour imprimer.

Source / Exemple :


Option Explicit
'---------- imprime ecran --------------
Private Declare Sub keybd_event Lib "user32" (ByVal bVk As Byte, ByVal bScan As Byte, ByVal dwFlags As Long, ByVal dwExtraInfo As Long)
Const VK_SNAPSHOT As Byte = &H2C
'---------------------------------------

Private Sub Form_Click()
Imprime
End Sub

Public Sub Imprime()
Dim DebutX, DebutY, Largeur, Hauteur As Integer
Picture2.Picture = Clipboard.GetData(vbCFDIB) 'met le presse-papier dans Picture2.Picture
Clipboard.Clear 'vide le presse-papier
Call keybd_event(VK_SNAPSHOT, 1&, 0&, 0&) 'met la fenêtre dans le presse-papier
DoEvents
Picture1.Picture = Clipboard.GetData(vbCFDIB) 'met le presse-papier dans Picture1.Picture
Printer.ColorMode = 1 '2 = mode couleur
Printer.ScaleMode = 5 'en pouce
Printer.Orientation = 1 ' 2 = paysage
Largeur = 4 'largeur de la fenêtre en pouce
Hauteur = 6 'Hauteur de la fenêtre en pouce
DebutX = (Printer.ScaleWidth - Largeur) / 2 'début sur largeur pour l'impression centrer sur la fenêtre
DebutY = (Printer.ScaleHeight - Hauteur) / 2 'début sur hauteur pour l'impression centrer sur la fenêtre
Printer.PaintPicture Picture1.Picture, DebutX, DebutY, Largeur, Hauteur
Printer.EndDoc
Clipboard.Clear 'vide le presse-papier
Clipboard.SetData Picture2.Picture 'remet le contenu du presse-papier s'il y a lieu
DoEvents
Unload Me
End Sub

Conclusion :


J'ai fait une mise à jour pour que le contenu du Presse-Papier ne soit pas écrasé et qu'il soit restitué après l'avoir utilisé.

A voir également

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.