Bonsoir Djodjo, bonsoir Pierrot
@ Djodjo
Merci d'avoir consulter mon blog, je vois que tu es gourmand comme moi... voici le code que j'excécute pour imprimer un formulaire (mentionner sur question poser sur le même blog "Créer son formulaire"
http://cellulexcel.blogspot.fr/p/qui-na-pas-un-jour-utilise-loption.html
Le codage n'est pas fini... j'ai d'ailleurs modifié quelques paramètres ce jour
http://cellulexcel.blogspot.fr/p/blog-page_22.html
On peut imprimer directement un formulaire "rempli" sur une feuille.
Voici la méthode (Le code n'est pas de moi.... l'auteur se reconnaitra peut-être)
Insérer dans un module le code suivant :
Declare Sub keybd_event Lib "User32" (ByVal bVk As Byte, _
ByVal bScan As Byte, ByVal dwFlags As Long, ByVal dwExtraInfo As Long)
Public Const VK_SNAPSHOT = 44
Public Const VK_LMENU = 164
Public Const KEYEVENTF_KEYUP = 2
Public Const KEYEVENTF_EXTENDEDKEY = 1
Puis créer un bouton sur votre formulaire et intégrer le code à l'événement click (exemple pour le bouton de commande ComandButton1)
Private Sub CommandButton1_Click()
'BOITE DE DIALOGUE POUR LA DEMANDE D'IMPRESSION
Dim IPVM
IPVM = MsgBox("AVEZ-VOUS UNE IMPRIMANTE DE CONNECTEE ?", vbYesNo + vbDefaultButton2 + vbQuestion, " DEMANDE D'IMPPRESSION")
If IPVM = vbNo Then Exit Sub
If IPVM = vbYes Then
Application.ScreenUpdating = False
DoEvents
keybd_event VK_LMENU, 0, KEYEVENTF_EXTENDEDKEY, 0
keybd_event VK_SNAPSHOT, 0, KEYEVENTF_EXTENDEDKEY, 0
keybd_event VK_SNAPSHOT, 0, KEYEVENTF_EXTENDEDKEY + KEYEVENTF_KEYUP, 0
keybd_event VK_LMENU, 0, KEYEVENTF_EXTENDEDKEY + KEYEVENTF_KEYUP, 0
DoEvents
Workbooks.Add
Application.Wait Now + TimeValue("00:00:01")
With ActiveSheet
.PasteSpecial Format:="Bitmap", Link:=False, DisplayAsIcon:=False
.Range("A1").Activate
.PageSetup.Orientation = xlLandscape
.PageSetup.LeftMargin = Application.InchesToPoints(0)
.PageSetup.RightMargin = Application.InchesToPoints(0)
.PageSetup.TopMargin = Application.InchesToPoints(0.3)
.PageSetup.BottomMargin = Application.InchesToPoints(0)
.PageSetup.HeaderMargin = Application.InchesToPoints(0)
.PageSetup.FooterMargin = Application.InchesToPoints(0)
.PageSetup.PrintHeadings = False
.PageSetup.PrintGridlines = False
.PageSetup.PrintComments = xlPrintNoComments
.PageSetup.CenterHorizontally = False
.PageSetup.CenterVertically = False
.PageSetup.Draft = False
.PageSetup.PaperSize = xlPaperA4
.PageSetup.Order = xlDownThenOver
.PageSetup.BlackAndWhite = False
.PageSetup.Zoom = 100
End With
ActiveWindow.SelectedSheets.PrintOut Copies:=1
ActiveWorkbook.Close False
UserForm1.CommandButton1.SetFocus
Application.ScreenUpdating = True
End If
End Sub
Donc dès lors que vous cliquez sur le bouton, le formulaire sera imprimé sur l'imprimante connecté par défaut.