bonjour le code ne viens pas de moi mais je l'ai essaye et il fonctionne tres bien
sur ta form tu cree 2 picturebox picture1 et picture2 un command1 et bien sur ta frame et tu ajoute ceci dans ton code:
Private Declare Function BitBlt Lib "gdi32" (ByVal hDestDC As Long, ByVal x As Long, ByVal y As Long, _
ByVal nWidth As Long, ByVal nHeight As Long, ByVal hSrcDC As Long, ByVal xSrc As Long, _
ByVal ySrc As Long, ByVal dwRop As Long) As Long
Private Sub Command1_Click()
' mettre sur la form ou ce trouve le frame a imprimer 2 controle picturebox
'picture1 et picture2
Picture2.BorderStyle = 0
Picture2.Visible = False
Picture2.AutoRedraw = True
Picture1.BorderStyle = 0
Picture1.AutoRedraw = False
Picture1.Visible = False
Picture1.ScaleMode = ScaleMode
With Frame1
Picture1.Move .Left, .Top, .Width, .Height
Picture2.Move .Left, .Top, .Width, .Height
End With
With Picture1
.ScaleMode = vbPixels
BitBlt Picture2.hDC, 0, 0, .Width, .Height, .hDC, 0, 0, vbSrcCopy
End With
Clipboard.Clear
Clipboard.SetData Picture2.Image
Picture2.Move 700, 100, Frame1.Width, Frame1.Height
'Printer.PaintPicture Picture2.Image, 30, 120
'Printer.EndDoc
End Sub