1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35
|
Option Explicit
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 CB_Imprimer_Click() 'recopie d'un module présent sur le net dédié à l'impression (légèrement adapté à notre cas)
On Error GoTo ErrorHandler 'gestion des erreurs si erreur alors aller au point ErrorHandler (voir en bas)
Dim Ws As Worksheet
keybd_event vbKeySnapshot, 1, 0&, 0& 'Copie d'écran de la forme active=copie l'userform
DoEvents
Set Ws = Sheets.Add 'Ajoute une feuille pour coller l'image de la forme
Ws.Paste 'colle le contenu du snapshot dans la feuille
'impression centrée dans la page
With Ws
.PageSetup.Orientation = xlLandscape 'Met la feuille en mode paysage
.PageSetup.Zoom = False
.PageSetup.FitToPagesTall = 1 'dit que le contenu du classeur ne doit être imprimé que sur une feuille en hauteur
.PageSetup.FitToPagesWide = 1 'dit que le contenu du classeur ne doit être imprimé que sur une feuille en largeur
.PageSetup.CenterHorizontally = True 'centre horizontalement sur la page
.PageSetup.CenterVertically = True 'centre verticalement
End With
U2.Hide 'masque l'userform2
Application.Dialogs(xlDialogPrint).Show 'montre la boite de dialogue imprimer
U2.Show 'remontre l'userform2
Application.DisplayAlerts = False 'empèche les message d'alerte type etes vous sur de vouloir supprimer
Ws.Delete 'supprimer la feuille créée
Application.DisplayAlerts = True 'rétabli les messages d'alerte
Exit Sub
ErrorHandler: 'point de gestion des erreurs
MsgBox ("Erreur grave rencontrée : " & Err.Description) 'si erreur alors message qui affiche "erreur rencontrée avec le descriptif de l'erreur"
Application.DisplayAlerts = True
On Error Resume Next 'après avoir validé l'erreur on passe à la suite de la macro
End Sub |