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

Soyez le premier à donner votre avis sur cette source.

Snippet vu 18 829 fois - Téléchargée 34 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

Ajouter un commentaire

Commentaires

Messages postés
36
Date d'inscription
dimanche 8 octobre 2006
Statut
Membre
Dernière intervention
12 mars 2010

bonjour a tous,

GENIAL TON CODE, mais peut ton juste imprimer une form qui est a l'écran sans imprimer la barre de Windows?

cordialemnt
Messages postés
1
Date d'inscription
jeudi 25 novembre 2004
Statut
Membre
Dernière intervention
25 novembre 2004

bonsoir à tous, pour ma part j'ai un gros souci d'impression, à savoir que j'ai des données que j'ajoute par une "printer.print infos" puis je fais un "enddoc " pour imprimer le tout, mais le problème est que si une de mes infos dépasse la taille de la feuille imprimé, mon info est tronquée (je ne parviens pas à faire un retour chariot en bout de feuille A4 !!!!!) argh, que c'est pénible! Help me pleaaase!
Messages postés
122
Date d'inscription
mercredi 25 février 2004
Statut
Membre
Dernière intervention
2 juillet 2014

Avec ta solution, si le presse papier contient du texte ou autres données, ça devrait planter non ?
Messages postés
135
Date d'inscription
lundi 26 janvier 2009
Statut
Membre
Dernière intervention
24 novembre 2014

Dany3 : Oki no prob ;)
Mais ça fait déjà pas mal de temps que je cherche........... :-/
Messages postés
13
Date d'inscription
mercredi 26 juin 2002
Statut
Membre
Dernière intervention
26 juin 2003

Rrominet: Si tu connais un moyen, laisse-moi le savoir je vais modifier ma source.
Afficher les 13 commentaires

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.