Enregistrer plusieurs feuilles.PDF

j'ai un tableur de rapport qui saisit des données d'une base de données et forme trois feuilles d'information de rapport sommaire. Je veux lancer le tableur automatiquement à partir de la ligne de commande, et le faire enregistrer automatiquement les trois feuilles de rapport comme un fichier PDF(s).

au début j'ai pensé que je pourrais avoir une macro VBA sur la feuille faire ceci par une série de "imprimer en PDF", mais cela nécessite une boîte de dialogue interactive intermédiaire pour spécifier le nom du fichier de sortie. Alors je trouve que je peut simplement enregistrer en pdf, et la macro peut définir le nom du fichier de sortie. Cependant, cela crée trois fichiers séparés, et je dois ensuite les mettre ensemble à l'extérieur pour les fusionner.

(il est étrange que save as pdf ne sauve qu'une feuille, alors que les autres modes de sauvegarde semblent sauver l'ensemble du classeur.)

Oui, il y a des outils pour fusionner les trois fichiers plus tard, mais je veux savoir s'il y a un moyen facile D'obtenir Excel pour sauver plusieurs feuilles ensemble comme un pdf fichier.

j'ai l'impression maintenant par une série de choses comme:

ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, ...

Pourrais-je faire à la place une seule déclaration quelque chose comme (pseudo-code):

ThisWorkbook.Sheets(1,2,3,4).ExportAsFixedFormat Type:=xlTypePDF, ...
20
demandé sur pnuts 2013-01-18 21:48:47

4 réponses

commencez par sélectionner les feuilles que vous voulez combiner:

ThisWorkbook.Sheets(Array("Sheet1", "Sheet2")).Select

ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, Filename:= _
    "C:\tempo.pdf", Quality:= xlQualityStandard, IncludeDocProperties:=True, _
     IgnorePrintAreas:=False, OpenAfterPublish:=True
59
répondu Tim Williams 2013-01-18 21:32:15

similaire à la réponse de Tim-mais avec une vérification pour 2007 (où L'export PDF n'est pas installé par défaut):

Public Sub subCreatePDF()

    If Not IsPDFLibraryInstalled Then
        'Better show this as a userform with a proper link:
        MsgBox "Please install the Addin to export to PDF. You can find it at http://www.microsoft.com/downloads/details.aspx?familyid=4d951911-3e7e-4ae6-b059-a2e79ed87041". 
        Exit Sub
    End If

    ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, _
        Filename:=ActiveWorkbook.Path & Application.PathSeparator & _
        ActiveSheet.Name & " für " & Range("SelectedName").Value & ".pdf", _
        Quality:=xlQualityStandard, IncludeDocProperties:=True, _
        IgnorePrintAreas:=False, OpenAfterPublish:=True
End Sub

Private Function IsPDFLibraryInstalled() As Boolean
'Credits go to Ron DeBruin (http://www.rondebruin.nl/pdf.htm)
    IsPDFLibraryInstalled = _
        (Dir(Environ("commonprogramfiles") & _
        "\Microsoft Shared\OFFICE" & _
        Format(Val(Application.Version), "00") & _
        "\EXP_PDF.DLL") <> "")
End Function
6
répondu Peter Albert 2016-10-04 17:57:04
ThisWorkbook.Sheets("Sheet1").Select