Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1752to1756
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

Automatisch PDF Datei erstellen

Automatisch PDF Datei erstellen
16.04.2020 16:56:18
Schlandro
Hallo in die Runde,
in meiner VBA Anwendung soll in einer Datei nach festgelegten Begriffen (PP,Pul,PL) gefiltert werden, der gefilterte Bereich soll dann in eine neue Datei exportiert werden und dann auf einer Seite als PDF gespeichert werden. Danach sollen die neu erstellten Dateien geschlossen werden.
Momentan werden die Dateien zwar unter dem richtigen Namen abgespeichert aber immer mit dem gefilterten Bereich für den Begriff für PP. Für Pul und PL wird also ebenfalls der Bereich von PP angezeigt. Ich komme nicht dahinter warum er immer nur diesen Bereich übernimmt und kopiert und nicht jedes mal den neuen. Vermutlich muss zunächst die Datei geschlossen werden die abgespeichert wird. Dies funktioniert bei mir aber nicht.
Hier ist mein Code:
Option Explicit

Public Sub Filtern()
Const FOLDER_PATH As String = "C:\Users\Schlandro\Desktop"
Dim objWorkbook As Workbook
Call Rows(1).AutoFilter(Field:=1, Criteria1:="PL")
Range("A1:AS600").Select
Selection.Copy
Set objWorkbook = Workbooks.Add(Template:=xlWBATWorksheet)
With objWorkbook.Worksheets(1)
Call .Paste(Destination:=.Cells(1, 1))
End With
Set objWorkbook = Workbooks.Add(Template:=xlWBATWorksheet)
With objWorkbook.Worksheets(1)
Call .Paste(Destination:=.Cells(1, 1))
Rows("4:4").RowHeight = 32.25
Columns("B:B").EntireColumn.AutoFit
Columns("C:C").EntireColumn.AutoFit
Columns("F:F").EntireColumn.AutoFit
End With
With ActiveSheet.PageSetup
.PrintQuality = -3:            .CenterHorizontally = False
.CenterVertically = False:      .Orientation = xlLandscape
.Draft = False:                 .PaperSize = xlPaperA4
.FirstPageNumber = xlAutomatic: .Zoom = 100
.Zoom = False:                  .FitToPagesWide = 1
.FitToPagesTall = 1:            .PrintErrors = xlPrintErrorsDisplayed
End With
ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, Filename:= _
"C:\Users\Schlandro\Desktop\PL.pdf" _
, Quality:=xlQualityStandard, IncludeDocProperties:=True, IgnorePrintAreas _
:=False, OpenAfterPublish:=False
Call objWorkbook.Close(SaveChanges:=False)
Call Rows(1).AutoFilter(Field:=1, Criteria1:="PuL")
Range("A1:AS600").Select
Selection.Copy
Set objWorkbook = Workbooks.Add(Template:=xlWBATWorksheet)
With objWorkbook.Worksheets(1)
Call .Paste(Destination:=.Cells(1, 1))
End With
Set objWorkbook = Workbooks.Add(Template:=xlWBATWorksheet)
With objWorkbook.Worksheets(1)
Call .Paste(Destination:=.Cells(1, 1))
Rows("4:4").RowHeight = 32.25
Columns("B:B").EntireColumn.AutoFit
Columns("C:C").EntireColumn.AutoFit
Columns("F:F").EntireColumn.AutoFit
End With
With ActiveSheet.PageSetup
.PrintQuality = -3:            .CenterHorizontally = False
.CenterVertically = False:      .Orientation = xlLandscape
.Draft = False:                 .PaperSize = xlPaperA4
.FirstPageNumber = xlAutomatic: .Zoom = 100
.Zoom = False:                  .FitToPagesWide = 1
.FitToPagesTall = 1:            .PrintErrors = xlPrintErrorsDisplayed
End With
ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, Filename:= _
"C:\Users\Schlandro\Desktop\Pul.pdf" _
, Quality:=xlQualityStandard, IncludeDocProperties:=True, IgnorePrintAreas _
:=False, OpenAfterPublish:=False
Call objWorkbook.Close(SaveChanges:=False)
Call Rows(1).AutoFilter(Field:=1, Criteria1:="PP")
Range("A1:AS600").Select
Selection.Copy
Set objWorkbook = Workbooks.Add(Template:=xlWBATWorksheet)
With objWorkbook.Worksheets(1)
Call .Paste(Destination:=.Cells(1, 1))
End With
Set objWorkbook = Workbooks.Add(Template:=xlWBATWorksheet)
With objWorkbook.Worksheets(1)
Call .Paste(Destination:=.Cells(1, 1))
Rows("4:4").RowHeight = 32.25
Columns("B:B").EntireColumn.AutoFit
Columns("C:C").EntireColumn.AutoFit
Columns("F:F").EntireColumn.AutoFit
End With
With ActiveSheet.PageSetup
.PrintQuality = -3:            .CenterHorizontally = False
.CenterVertically = False:      .Orientation = xlLandscape
.Draft = False:                 .PaperSize = xlPaperA4
.FirstPageNumber = xlAutomatic: .Zoom = 100
.Zoom = False:                  .FitToPagesWide = 1
.FitToPagesTall = 1:            .PrintErrors = xlPrintErrorsDisplayed
End With
ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, Filename:= _
"C:\Users\Schlandro\Desktop\PP.pdf" _
, Quality:=xlQualityStandard, IncludeDocProperties:=True, IgnorePrintAreas _
:=False, OpenAfterPublish:=False
Call objWorkbook.Close(SaveChanges:=False)
End Sub

Vielen Dank für die Hilfe und liebe Grüße

3
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
und wo ist...
17.04.2020 06:34:07
Oberschlumpf
Hi,
...per Upload eine Bsp-Datei mit Bsp-Daten + deinem Code?
All das könnte zur Hilfe für dich wesentlich beitragen.
Ciao
Thorsten
AW: und wo ist...
17.04.2020 18:12:49
Oberschlumpf
Hi,
hier die korrigierte und (zumindest bei mir) funktionierende Version
https://www.herber.de/bbs/user/136821.xlsm
Ich habe alles im Code kommentiert.
Nachdem du meine Anmerkungen im Code gelesen + verstanden hast, kannst du im Code alle Kommentarzeilen (die grünen Zeilen) löschen. Danach ist der Code übersichtlicher.
Hilfts denn?
Ciao
Thorsten
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige