Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

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
    329.9 KB · Affichages: 49
  • UserForm_Multipage_SaveAsPDF_02.xlsm
    767.1 KB · Affichages: 35
Dernière édition:

patricktoulon

XLDnaute Barbatruc
bonjour
@kik29i je suppose que le maître du pdf c'est intéressé a l'imprimante pdf inclue dans window 10 et parallèlement a celle de window 7 qui en est une copie

tu sais comment gérer les fusions avec piloté par vba bien sur ?
 

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
    234.7 KB · Affichages: 48
  • 2.png
    260.5 KB · Affichages: 50
Dernière édition:

PoloTaz67

XLDnaute Junior
Bonsoir Noleleda et les autres
J'ai incorporé le code à mon USF
Lorsque je le lance un msg d'erreur mets set Imprimantre en surbrillance et affiche "Erreur de compilation Variable non définie"
Comment y remédier?
Merci
 

Discussions similaires

Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…