XL 2010 Impression d'un userform en pdf & Multipages

Noleleda

XLDnaute Nouveau
Bonjour,

J'ai utilisé un sub (trouvé sur ce forum) pour afficher les imprimantes dispos afin d'imprimer un userform en pdf.


Sub impressionForm(usf)
Dim x, tbl(), i, texte
x = 0
With CreateObject("WScript.Network")
Set imprimantes = .EnumPrinterConnections
For i = 0 To imprimantes.Count - 1
If InStr(LCase(imprimantes(i)), "pdf") > 0 Then ReDim Preserve tbl(0 To x): tbl(x) = imprimantes(i): texte = texte & x & "--" & imprimantes(i) & vbCrLf: x = x + 1
Next
i = InputBox("choissisez une imprimante " & vbCrLf & texte, "impression userform")
If i <> "" Then
.SetDefaultPrinter tbl(Val(i))
usf.printform
End If
End With
End Sub

Puis ceci pour le bouton d'impression:

Private Sub CommandButton1_Click()
impressionForm Me
End Sub

Cela fonctionne super bien, sauf que, mon userform contient un multipages de 3 pages. La macro n'imprime que la page active ou le bouton impression est situé. Il y a t'il une façon d'imprimer les 3 pages? J'ai aussi essayé avec un userform et un scrollbar mais idem, cela n'imprime qu'une partie de mon userform.

J'avais trouvé ceci pour l'impression des 3 pages, mais je ne trouve pas comment l'intégrer dans le code.


Private Sub CommandButton1_Click()
For i = 0 To 3
MultiPage1.Value = i
Do: DoEvents: Loop Until MultiPage1.Value = i
Me.PrintForm
Next
End Sub

Merci beaucoup!
 

kiki29

XLDnaute Barbatruc
Re, à toi de poursuivre pour l'adapter à ton contexte. Le choix est laissé pour des PDFs individuels ou fusionnés via la checkbox Fusion des PDFs ?
 

Pièces jointes

  • Multipages_SaveAsPDF.png
    Multipages_SaveAsPDF.png
    329.9 KB · Affichages: 43
  • UserForm_Multipage_SaveAsPDF_02.xlsm
    767.1 KB · Affichages: 33
Dernière édition:

kiki29

XLDnaute Barbatruc
Salut, par défaut chez moi l'imprimante est Adobe PDF et tout est ok.
L'appli Usf_Multipage_SaveAsPDF gère la fusion, avec l'imprimante Microsoft Print to PDF cela fonctionne à part que les paramètres de la mise en page sont à modifier car avec ceux que j'ai mis les feuilles débordent... En passant la valeur de Zoom à 130 au lieu de 135 ce comportement est corrigé.

Code:
         With ActiveSheet.PageSetup
            .LeftMargin = Application.InchesToPoints(0.197)
            .RightMargin = Application.InchesToPoints(0.197)
            .TopMargin = Application.InchesToPoints(0.197)
            .BottomMargin = Application.InchesToPoints(0.197)
            .HeaderMargin = Application.InchesToPoints(0)
            .FooterMargin = Application.InchesToPoints(0)
            .CenterHorizontally = True
            .CenterVertically = True
            .Orientation = xlLandscape
            .Zoom = 135
        End With

Il faut aller fouiller dans Liste Contributions PDF
En bas du 1er post qui date de 2007 : Impression de certaines Feuilles d'un classeur via un tableau dans un seul Pdf résultant.
Ceci pourrait également t'intéresser.
 

Pièces jointes

  • 1.png
    1.png
    234.7 KB · Affichages: 45
  • 2.png
    2.png
    260.5 KB · Affichages: 47
Dernière édition:

Discussions similaires

Réponses
17
Affichages
760

Statistiques des forums

Discussions
311 723
Messages
2 081 932
Membres
101 844
dernier inscrit
pktla