Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1548to1552
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

Automatisieren: erst filtern, dann PDF erzeugen

Automatisieren: erst filtern, dann PDF erzeugen
18.03.2017 10:52:29
Marzena
Hallo Forum,
ich beziehe mich auf die angehängte Beispieldatei. Dropbox-Link, weil ich Probleme mit dem Upload hier im Forum habe.
https://www.dropbox.com/s/svq491scjm9y807/Bsp%20Filter%20%26%20PDF.xlsx?dl=0
Ziel ist, dass Excel „auf Knopfdruck“ die Gebiete in Spalte A filtert und für jedes Gebiet eine PDF erzeugt und diese lokal speichert. Der Dateiname der PDF soll aus dem gefilterten Gebietsnamen sowie dem Inhalt der Zelle A3 zusammengesetzt sein.
Ergebnis wären dann 3 PDF mit dem Namen A1-XXL, B1-XXL & C1-XXL.
Vielen Dank für eure Hilfe!
Marzena

1
Beitrag zum Forumthread
Beitrag zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Automatisieren: erst filtern, dann PDF erzeugen
19.03.2017 10:58:23
fcs
Hallo Marzena,
für das Hochladen hier im Forum die Regeln für Dateinamen und -größe beachten.
Dateiname/Pfad darf keine Sonderzeichen (ä ö ü etc.) und Leerzeichen enthalten.
Mit nachfolgendem Makro kannst du deine PDF erzeugen. Den lokalen Pfad musst du anpassen.
Gruß
Franz
Sub Filtern_PDF()
Dim Zeile As Long
Dim strPfadPDF As String
Dim strPDF As String
Dim wks As Worksheet
Dim arrData As Variant
Dim objCol As New Collection
On Error GoTo Fehler
Set wks = ActiveSheet
strPfadPDF = "C:\Users\Public\Test\PDF\"  'anpassen!!!
With wks
'Prüfen,ob Autofilter aktiv
If .AutoFilterMode = False Then
MsgBox "Bitte den Autofilter für die Daten aktivieren!"
Exit Sub
End If
'ggf.alle Datenanzeigen
If .FilterMode = True Then .ShowAllData
'Daten in Zellbereich mit Gebieten in Spalte A
arrData = .Range(.Cells(6, 1), .Cells(.Rows.Count, 1).End(xlUp))
'Liste der Gebiete ohne Doppelte erstellen
For Zeile = LBound(arrData, 1) To UBound(arrData, 1)
objCol.Add arrData(Zeile, 1), CStr(arrData(Zeile, 1))
Next
'Gebiete abarbeiten - filtern und PDF erstellen
For Zeile = 1 To objCol.Count
.AutoFilter.Range.AutoFilter Field:=1, Criteria1:=objCol(Zeile)
strPDF = strPfadPDF & objCol(Zeile) & "-" & .Range("A3").Text & ".pdf"
wks.ExportAsFixedFormat Type:=xlTypePDF, Filename:=strPDF, _
Quality:=xlQualityStandard, ignoreprintareas:=True, Openafterpublish:=False
Next
.ShowAllData
End With
Fehler:
With Err
Select Case .Number
Case 0 'alles OK
Case 457 'Schlüssel ist in Collection schon vorhanden
Resume Next
Case Else
MsgBox "Fehler-Nr.: " & .Number & vbLf & .Description
End Select
End With
End Sub

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige