Bestimmte Sheets in eine PDF Datei abspeichern

Hallo w-w-w Gemeinde,

ich hätte da eine, glaube relativ einfache Aufgabe für euch. Ich möchte per Mausklick auf einem Button klicken das anschließend nur bestimmte Arbeitsblätter in PDF umgewandelt und abgespeichert werden können.
Ist dies via VBA möglich?

Bspw. habe ich Tab1 Tab2 Tab3…usw Tab(n)
Durch ein Mausklick sollen feste Tabellen wie z.B.: Tab1 Tab4 und Tab8 in PDF abgespeichert werden. Ich weiß das es die Funktion bei Excel schon das man bestimmte Seiten auswählen kann und die dann als PDF abspeichern.
Ich möchte aber diesen Weg umgehen und nur durch ein Klick zum Ziel kommen.

Danke

Gruß Khai…

Hallo Khai,

Hallo w-w-w Gemeinde,

ich hätte da eine, glaube relativ einfache Aufgabe für euch.
Ich möchte per Mausklick auf einem Button klicken das
anschließend nur bestimmte Arbeitsblätter in PDF umgewandelt
und abgespeichert werden können.
Ist dies via VBA möglich?

Bspw. habe ich Tab1 Tab2 Tab3…usw Tab(n)
Durch ein Mausklick sollen feste Tabellen wie z.B.: Tab1 Tab4
und Tab8 in PDF abgespeichert werden. Ich weiß das es die
Funktion bei Excel schon das man bestimmte Seiten auswählen
kann und die dann als PDF abspeichern.
Ich möchte aber diesen Weg umgehen und nur durch ein Klick zum
Ziel kommen.

dann zeichne das Abspeichern in ein Makro auf. Anschließend das Makro einen Button zuordnen!
Gruß - Wolfgang

Danke

Gruß Khai…

Hm hab das genau so gemacht wie du es gesagt hast, funktioniert leider nicht. Außer einem Kommentar steht weiter nichts in dem Makro.

Muss dazu sagen dass ich was VBA angeht nicht so fit bin…

Hallo Khai,

was Skater geraten hat wäre auch meine Antwort gewesen und bei mir kommt folgendes
Roh-Makro dabei zustande:
Sub Makro1()

’ Makro1 Makro

ChDir „C:\Users\thomas\Desktop“
ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, Filename:= _
„C:\Users\thomas\Desktop\TS_Menu_3D_Fokus.pdf“, Quality:=xlQualityStandard, _
IncludeDocProperties:=True, IgnorePrintAreas:=False, OpenAfterPublish:= _
True
End Sub

Im Grunde muss man dann den Ausdruck „ActiveSheet“ variieren. Notfalls noch mit den Parametern experimentieren. Dabei können wir helfen. Zuerst müssen wir aber wissen, was da nicht klappt. Da wäre es an Dir, mehr Informationen zu geben.
Ich verwende übrigens Excel 2010.

Freundliche Grüße

Thomas

Hey Thomas,

habe dein Code mal übernommen und habe es umgeändert:

Sub PDF_Umwandlung()

’ PDF_Umwandlung Makro

’ Tastenkombination: Strg+u

ChDir „C:\Users\khai\Desktop“
Sheets („KW_Auswahl“)
.ExportAsFixedFormat Type:=xlTypePDF, Filename:= _
„C:\Users\khai\Desktop\Wochenbericht.pdf“, Quality:=xlQualityStandard, _
IncludeDocProperties:=True, IgnorePrintAreas:=False, OpenAfterPublish:= _
True
End Sub

„KW_Auswahl“ wird in PDF konvertiert das klappt schonmal super, wie füge
ich weitere Sheets hinzu???

Danke

Hallo Khai,

Hm hab das genau so gemacht wie du es gesagt hast,
funktioniert leider nicht. Außer einem Kommentar steht weiter
nichts in dem Makro.
Muss dazu sagen dass ich was VBA angeht nicht so fit bin…

Bei mir funktioniert es mit diesem Makro schon!
Sub Mehrere_pdf()
ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, Filename:= _
„C:\Users\Wolfgang\Dropbox\Statistik\statistik.pdf“, _
Quality:=xlQualityStandard, IncludeDocProperties:=True, IgnorePrintAreas _
:=False, OpenAfterPublish:=False
Sheets(„Pivot 2“).Select
ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, Filename:= _
„C:\Users\Wolfgang\Dropbox\Statistik\statistik2.pdf“ _
, Quality:=xlQualityStandard, IncludeDocProperties:=True, IgnorePrintAreas _
:=False, OpenAfterPublish:=False
Sheets("WEB-Seite ").Select
ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, Filename:= _
„C:\Users\Wolfgang\Dropbox\Statistik\statistik3.pdf“ _
, Quality:=xlQualityStandard, IncludeDocProperties:=True, IgnorePrintAreas _
:=False, OpenAfterPublish:=False
End Sub

Gruß - Wolfgang

alle in eine pdf?
Hallo,
sollen nun doch mehrere Blätter in eine pdf geschrieben werden? - Da kann ich nix zu sagen, musst Du selber experimentieren, googeln oder auf Antworten warten.
Wenn einzelne pdf´s reichen und die Blätter immer dieselben sind: Lass´doch die entsprechenden ( 2 ) Makrozeilen mit unterschiedlichen Quellangaben mehrmals durchlaufen.
Bei vielen Blättern lohnt sich evtl. der Einsatz einer Schleife. Aber schreibe doch ´mal genau, was Du willst!
Es wäre auch schön, wenn Du direkt unter dem bezogenen Post antworten würdest. So verlieren wir sehr schnell die Übersicht.
Freundliche Grüße
Thomas

Hallo,
also ich versuche es nochmal genauer zu erklären. Ich habe eine Excel Datei mit mehreren Tabellenblätter und aus einigen dieser Tabellenblätter möchte ich eine Umwandlung in nur EINE Pdf Datei schreiben.

Hallo Khai,

Hallo,
also ich versuche es nochmal genauer zu erklären. Ich habe
eine Excel Datei mit mehreren Tabellenblätter und aus einigen
dieser Tabellenblätter möchte ich eine Umwandlung in nur EINE
Pdf Datei schreiben.

so funktioniet es, dass nur eine Pdf erstellt wird. Dazu musst Du die einzelnen Arbeitsblätter markieren (hier Grafik, Erhebung, WEB-Seite). Also in der Aufzeichnung des Makro enthalten sein!

Sub Mehrere_Pdf()

Sheets(Array(„Grafik“, „Erhebung“, "WEB-Seite ")).Select
Sheets(„Grafik“).Activate
ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, Filename:= _
„C:\Users\Wolfgang\Dropbox\Statistik\statistik2.pdf“ _
, Quality:=xlQualityStandard, IncludeDocProperties:=True, IgnorePrintAreas _
:=False, OpenAfterPublish:=False
End Sub

Gruß-Wolfgang

so funktioniet es, dass nur eine Pdf erstellt wird. Dazu musst
Du die einzelnen Arbeitsblätter markieren (hier Grafik,
Erhebung, WEB-Seite). Also in der Aufzeichnung des Makro
enthalten sein!
Sheets(Array(„Grafik“, „Erhebung“, "WEB-Seite ")).Select

Hallo Wolfgang

Ich habe ein ähnliches „Problem“ wie Khai. Ich möchte aus einer Excel-Datei mehrere Tabellenblätter in einem PDF ausgeben.

Aber: Ich müsste einen „dynamischen“ Array haben, denn ich möchte die Tabellen ganz variabel auswählen können. Es heisst dann einmal:
Sheets(Array(„Grafik“, „Erhebung“, "WEB-Seite ")).Select
Ein anderes Mal
Sheets(Array(„Erhebung“, „Beteiligte“, „Uebersicht“)).Select usw.

Ich möchte die Tabellen, die in einem PDF ausgegeben werden sollen, mit CTRL-Mausklick von Mal zu Mal neu auswählen können.

Mit folgendem Makro kann ich schon mal festhalten, welche Tabellenblätter mit CTRL-Mausklick ausgewählt sind.

Sub GroupSheets()
Dim i As Integer
With ActiveWindow.SelectedSheets
 For i = 1 To .Count
 MsgBox .Item(i).Name
 Next i
End With
End Sub

Mein Problem aber ist, wie kriege ich die Ergebnisse dieses Makros in den Array hinein? Also ganz trivial gesagt, wie kriege ich folgenden Array:

Sheets(Array( ERGEBNIS_AUS_MAKRO_GroupSheets )).Select

Hast Du eine Idee, wie man das hinkriegt?
Grüsse Niclaus

@Wolfgang
Danke dir schonmal für die Hilfe. Kann man die Markierungen umgehen? Ich möchte ungefähr 10 Tabellenblätter umgewandelt haben und jedesmal alle Tabellenblätter zu markieren ist mühsam. Könnte man sich den „weg“ mit der Markierung sparen und direkt eine Umwandlung durchführen?

Hallo Khai,

das musst Du doch nur 1x tun!

Gruß - Wolfgang

Hallo Niclas,

Hast Du eine Idee, wie man das hinkriegt?
Grüsse Niclaus

Ja so!
Sub Beide()

Application.Run „statistik.xlsx!Tabelle1.GroupSheets“
ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, Filename:= _
„C:\Users\Wolfgang\Dropbox\Statistik\statistik3.pdf“ _
, Quality:=xlQualityStandard, IncludeDocProperties:=True, IgnorePrintAreas _
:=False, OpenAfterPublish:=False
End Sub

Gruß-Wolfgang

Hallo Wolfgang ich habe es ein wenig anders lösen können, poste es mal hier für andere Benutzer

Sub PDF_Umwandlung()


’ PDF Umwandlung -> Wochenbericht

Dim str_Date As String, sh As Worksheet

Const str_path As String = „C:\Users\khai\Desktop\Wochenbericht.pdf“ '„C:\Temp“
Set sh = ActiveSheet
With Sheets(„KW_Auswahl“)
str_Date = .Range(„F8“).Value & „_“ & .Range(„D8“).Value & „_“ & .Range(„B8“).Value
Sheets(Array(„KW_Auswahl“, „Schicht_A“,…)).Select
ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, Filename:= _
str_path & „Wochenbericht_“ & str_Date & „.pdf“, Quality:=xlQualityStandard, _
IncludeDocProperties:=True, IgnorePrintAreas:=False
sh.Activate
End With
End Sub

Zusätzlich wird das aktuelle Datum aus den Zellen entnommen, sonst wird die Datei
überschrieben.

Hallo Wolfgang
Vielen Dank!
Ich realisiere wieder einmal: Einer meiner Grundsätze heisst: Warum einfach, wenn’s kompliziert auch geht!
Grüsse Niclaus