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

VBA

VBA
29.01.2020 10:16:16
Dome
Hallo Leute,
Ich exportiere aus einem Workbook mehrere Worksheets in einzelne PDFs. Das funktioniert so weit so gut, siehe Code:

Sub pdf_erstellen_III() 'Alle, aber einzelne PDFs
Dim i As Integer
For i = 2 To Worksheets.Count
With Worksheets(i).PageSetup
.PrintArea = "Worksheets(i).Name!$A$1:$C$50;Worksheets(i).Name!$E$1:$G$50; _
Worksheets(i).Name!$I$1:$K$50;Worksheets(i).Name!$M$1:$O$50"
End With
Worksheets(i).ExportAsFixedFormat _
Type:=xlTypePDF, _
Filename:=ActiveWorkbook.Path & "\" & Worksheets(i).Name, _
Quality:=xlQualityStandard, _
IncludeDocProperties:=True, _
IgnorePrintAreas:=False, _
OpenAfterPublish:=True
Next
End Sub
Nun würde ich gerne die PrintArea dynamisch gestalten, und zwar habe ich dazu in der 1. Mappe (welche nicht exportiert wird) eine Range "B10:C12" (in Spalte B stehen die Mappen-Namen, in Spalte C die Druckbereiche, z.B. $A$1:$C$50;$E$1:$G$50) definiert.
SOLL: Code geht Mappe für Mappe durch, sucht den Namen innerhalb der Range und nimmt den entsprechenden Druckbereich und erstellt das PDF.
Kann man das allenfalls mit Intersect und Offset lösen?
Besten Dank für Eure Feedbacks.
LG
Dome

6
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
VBA Dynamische PrintArea
29.01.2020 10:17:12
Dome
sorry für den nichts sagenden Betreff....
Ergänzung (funktionierender Code)
29.01.2020 10:34:50
Dome
Dieser Code funktioniert, allerdings ist der Druckbereich eben statisch:

Sub pdf_erstellen_III() 'Alle, aber einzelne PDFs
Dim i As Integer, Druckbereich As String
Druckbereich = "$A$1:$C$50;$E$1:$G$50;$I$1:$K$50;$M$1:$O$50"
For i = 2 To Worksheets.Count
With Worksheets(i).PageSetup
.PrintArea = Replace(Druckbereich, ";", ",")
End With
Worksheets(i).ExportAsFixedFormat _
Type:=xlTypePDF, _
Filename:=ActiveWorkbook.Path & "\" & Worksheets(i).Name, _
Quality:=xlQualityStandard, _
IncludeDocProperties:=True, _
IgnorePrintAreas:=False, _
OpenAfterPublish:=True
Next
End Sub

Anzeige
Gelöst
29.01.2020 10:49:00
Dome
Habs hinbekommen:

Sub pdf_erstellen_III() 'Alle, aber einzelne PDFs
Dim i As Integer
Dim RNG As Range
Dim Zeile As Long
Dim Druckbereich As String
For i = 2 To Worksheets.Count
With Worksheets(i)
Set RNG = Columns(2)
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:=True
Next
End Sub

Anzeige
Nur Worksheets in Range verwenden
29.01.2020 15:22:51
Dome
Hallo Leute,
Nun ist doch noch ein Problem aufgetaucht..
Ich möchte, dass nur von den Worksheets im Range "B10" ein PDF erstellt wird und die restlichen übersprungen werden.
Habt Ihr eine Idee wie ich dies erreichen kann?
Besten Dank für Eure Inputs?
LG
Dome
Ergänzung: Range("B10:B20")
29.01.2020 15:24:27
Dome
Hat niemand eine Idee?
31.01.2020 07:04:52
Dome

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige