Macro VBA pour imprimer un écran (formulaire) vers un fichier PDF
Bonjour
pour imprimer un écran (formulaire) vers un fichier PDF j'utilise (vu dans FAQ)
L'image du UserForm est automatiquement placée dans le coin supérieur gauche de la page imprimée.
Il n'existe pas d'option pour centrer ou repositionner l'impression. La seule solution palliative consiste à faire une copie d'écran de la boîte de dialogue. Ensuite vous faites un collage dans la feuille de calcul en tant qu'image, pour la manipuler à votre guise.
Cet exemple imprime l'UserForm centré dans la page:
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24
| 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 CommandButton1_Click()
Dim Ws As Worksheet
'Copie d'écran de la forme active
keybd_event vbKeySnapshot, 1, 0&, 0&
DoEvents
'Ajoute une feuille pour coller l'image de la forme
Set Ws = Sheets.Add
Ws.Paste
'impression centrée dans la page
With Ws
.PageSetup.CenterHorizontally = True
.PageSetup.CenterVertically = True
.PrintOut
End With
End Sub |
mais je souhaite :
paramétrer le chemin et le fichier créé
avoir tous l'écran sur une page
Dans le FAQ et la doc microsoft (2013)
il y a
Code:
1 2 3
| .PageSetup.PrinToFile = True
.PageSetup.PrinToFileName = "C:\program files\apbene\stats\benevole_ind\nom&prenom.pdf"
.PageSetup.PrintArea = "$A$1:$N$48" |
mais celà ne me semble pas géré en Exel 2007
est-ce exact ?
merci de m'aider pour prendre en compte ces besoins en exel 2007
solution ?
paliatif ?
bien cordialement
MJ