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

PDFs auf Basis Tabellennamen in Range

PDFs auf Basis Tabellennamen in Range
31.01.2020 08:07:33
Dome
Guten Morgen,
Gegeben eine Arbeitsmappe mit diversen Tabellen (leeren und nicht-leeren). Das unten stehende Makro erstellt mir ab Tabelle 25 jeweils ein PDF pro Tabelle. So weit, so gut.
Wie bekomme ich es nun hin, dass das Makro mir nur jene Tabellen als PDF erstellt, welche in Tabelle1 in Range O3:O20 stehen? (Der Bereich O3:O20 enthällt alle Tabellennamen)

Sub pdf_erstellen_II()
Dim i As Integer
Dim RNG As Range
Dim zeile As Long
Dim druckbereich As String
Application.ScreenUpdating = False
For i = 25 To Worksheets.Count
On Error Resume Next
With Worksheets(i)
Set RNG = Columns(15)
zeile = WorksheetFunction.Match(Worksheets(i).Name, RNG, 0)
druckbereich = Intersect(RNG.Offset(, 1), Rows(zeile))
.PageSetup.PrintArea = Replace(druckbereich, ";", ",")
End With
Worksheets(i).ExportAsFixedFormat _
Type:=xlTypePDF, _
Filename:=ActiveWorkbook.Path & "\" & Worksheets(i).Name, _
Quality:=xlQualityStandard, _
IncludeDocProperties:=True, _
IgnorePrintAreas:=False, _
OpenAfterPublish:=False
Next
Application.ScreenUpdating = True
End Sub
Ich danke Euch für Eure Hilfe.
LG
Dome

4
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: PDFs auf Basis Tabellennamen in Range
31.01.2020 10:00:38
Torsten
Hallo Dome,
versuch mal so:

Sub pdf_erstellen_II()
Dim RNG As Range, Zelle As Range, Bereich As Range
Dim zeile As Long
Dim druckbereich As String
Dim ws As Worksheet
Application.ScreenUpdating = False
Set Bereich = ThisWorkbook.Sheets("Tabelle1").Range("O3:O20")
For Each Zelle In Bereich
If Zelle.Value  "" Then
Set ws = ThisWorkbook.Sheets(Zelle.Value)
On Error Resume Next
With ws
Set RNG = Columns(15)
zeile = WorksheetFunction.Match(.Name, RNG, 0)
druckbereich = Intersect(RNG.Offset(, 1), Rows(zeile))
.PageSetup.PrintArea = Replace(druckbereich, ";", ",")
End With
ws.ExportAsFixedFormat _
Type:=xlTypePDF, _
Filename:=ActiveWorkbook.path & "\" & Worksheets(i).Name, _
Quality:=xlQualityStandard, _
IncludeDocProperties:=True, _
IgnorePrintAreas:=False, _
OpenAfterPublish:=False
End If
Next
Application.ScreenUpdating = True
End Sub

Gruss Torsten
Anzeige
AW: PDFs auf Basis Tabellennamen in Range
31.01.2020 10:31:40
Torsten
Hallo nochmal,
sorry, hatte eine Aenderung uebersehen. Hier korrigiert:

Sub pdf_erstellen_II()
Dim RNG As Range, Zelle As Range, Bereich As Range
Dim zeile As Long
Dim druckbereich As String
Dim ws As Worksheet
Application.ScreenUpdating = False
Set Bereich = ThisWorkbook.Sheets("Tabelle1").Range("O3:O20")
For Each Zelle In Bereich
If Zelle.Value  "" Then
Set ws = ThisWorkbook.Sheets(Zelle.Value)
On Error Resume Next
With ws
Set RNG = Columns(15)
zeile = WorksheetFunction.Match(.Name, RNG, 0)
druckbereich = Intersect(RNG.Offset(, 1), Rows(zeile))
.PageSetup.PrintArea = Replace(druckbereich, ";", ",")
End With
ws.ExportAsFixedFormat _
Type:=xlTypePDF, _
Filename:=ActiveWorkbook.path & "\" & ws.Name, _
Quality:=xlQualityStandard, _
IncludeDocProperties:=True, _
IgnorePrintAreas:=False, _
OpenAfterPublish:=False
End If
Next
Application.ScreenUpdating = True
End Sub

Anzeige
Perfekt
31.01.2020 10:52:06
Dome
Hallo Torsten,
Jetzt wo ichs so vor mir habe sieht es so einfach aus..
Ich hatte es genau so im Kopf: Range definieren, Zelle für Zelle den Range durchlaufen lassen und PDF erstellen. Ich konnte es einfach nicht aufschreiben..
Ich danke Dir, Du hast mir sehr geholfen!
Einen schönen Tag.
LG
Dome
gerne...
31.01.2020 11:06:26
Torsten
viel Spass

98 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige