Dieses Forum nutzt Cookies
Dieses Forum verwendet Cookies, um deine Login-Informationen zu speichern, wenn du registriert bist, und deinen letzten Besuch, wenn du es nicht bist. Cookies sind kleine Textdokumente, die auf deinem Computer gespeichert werden. Die von diesem Forum gesetzten Cookies werden nur auf dieser Website verwendet und stellen kein Sicherheitsrisiko dar. Cookies aus diesem Forum speichern auch die spezifischen Themen, die du gelesen hast und wann du zum letzten Mal gelesen hast. Bitte bestätige, ob du diese Cookies akzeptierst oder ablehnst.

Ein Cookie wird in deinem Browser unabhängig von der Wahl gespeichert, um zu verhindern, dass dir diese Frage erneut gestellt wird. Du kannst deine Cookie-Einstellungen jederzeit über den Link in der Fußzeile ändern.

VBA zum Speichern mehrerer Sheets in einem pdf
#1
Hallo,

es gibt ein Sheet "Deckblatt" sowie die Sheets "Tabelle1", "Tabelle2", ... , "Tabelle10".

Im Sheet "Deckblatt" stehen in Zelle A1 die Sheets, die zunächst gruppiert und dann als pdf gespeichert werden sollen (z.B. "Tabelle1", "Tabelle2", "Tabelle4", "Tabelle7").

Ein Makro entnimmt der Zelle A1 auf dem Sheet "Deckblatt" die zu gruppierenden Sheets und speichert anschließend ein pdf auf dem U-Laufwerk ab.

Mit folgendem Makro habe ich es versucht, leider ohne Erfolg...

Sub Tabellen_als_pdf_speichern()

Dim Auswahl As String

Auswahl = Worksheets("Deckblatt").Cells(1, 1).Value

Sheets(Array(Auswahl)).Select
ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, Filename:="U:\pdf 1 2017 08 08.pdf", _
Quality:=xlQualityStandard, IncludeDocProperties:=True, IgnorePrintAreas _
:=False, OpenAfterPublish:=False

End Sub

Leider funktioniert das Makro nicht. :22:

Freue mich über jeden Hinweis und Tip!

Viele Grüße
Steffen
Antworten Top
#2
Hi Steffen,

nutze mal die Suche im Web mit den Begriffen:


Zitat:mehrere tabelen in pdf speichern vba


Da finden sich genug Lösungen für dein Problem.
Mit freundlichen Grüßen  :)
Michael
Antworten Top
#3
Hallo Zwergel,

vielen Dank für den Tip. Habe bereits die letzten Tage viel gegoogelt, habe jetzt aber doch noch was halbwegs passendes gefunden: http://www.office-hilfe.com/support/show...n-erzeugen

Leider ist der Code dort nicht variabel. Bei mir variiert die Zahl der Sheets je nach Auswahl.

Habe mal eine kurze Exceldatei erstellt und angehängt. Über die Zelle B6 im Sheet "Auswahl" steuert man die Auswahl der Sheets. Das VBA soll die jeweils ausgewählten Sheets aus dem Bereich B7:B10 entnehmen.

Habe den gegoogelten VBA-Code angepasst. Leider funktioniert er nicht:

Sub pdf_speichern()

    Dim arrBlätter() As String
    Dim Sheet As Integer
    Dim AnzahlSheets As Integer
        
    AnzahlSheets = Worksheets("Auswahl").Cells(4, 2).Value
    
    ReDim arrBlätter(1 To AnzahlSheets)
    
    For Sheet = 1 To AnzahlSheets Step 1
        
    arrBlätter(Sheet) = Worksheets("Auswahl").Cells(6 + Sheet).Value
    
    Next Sheet
    
    Sheets(arrBlätter).Select
    Sheets(arrBlätter(1)).Activate
    ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, Filename:="U:\pdf1.pdf", _
        Quality:=xlQualityStandard, IncludeDocProperties:=True, _
        IgnorePrintAreas:=False, OpenAfterPublish:=True
        
    'Deselektion der 3 Arbeitsblätter:
    Sheets("Auswahl").Select
End Sub


Vielen Dank im Voraus an alle, die sich mit meinem Problem befassen!!!

Viele Grüße
Steffen


Angehängte Dateien
.xlsm   Mappe 2017 08 09 1049.xlsm (Größe: 19,12 KB / Downloads: 3)
Antworten Top
#4
Hallo,

leider komme ich immer noch nicht weiter. :22: 

In meinem letzten Posting vom 9.8.17 habe ich eine Datei und einen VBA Code gepostet.

Ich bin wiklich auf Eure Hilfe angewiesen. Bin leider nicht sonderlich fit in VBA. Sorry!

Viele Grüße
Steffen
Antworten Top
#5
push!
Antworten Top
#6
(09.08.2017, 10:08)Steffen schrieb: Habe mal eine kurze Exceldatei erstellt und angehängt. Über die Zelle B6 im Sheet "Auswahl" steuert man die Auswahl der Sheets. Das VBA soll die jeweils ausgewählten Sheets aus dem Bereich B7:B10 entnehmen.

Hallo Steffen
Bring bitte die Beispieldatei im xlsx-Format (d.h. ohne Makro). Den Code haben wir ja und können ihn einbauen.
Gruss
Antworten Top
#7
Hallöchen,

was funktioniert denn genau nicht? Kommt eine Fehlermeldung? Ist nicht alles in der pdf? ...
Mit F8 kann man einen Code auch schrittweise durchgehen und prüfen, ob er alles tut und was in den Variablen steht.

Übrigens sollte man keine Standardsyntax (m.E. auch sehr ähnliches) für Excelobjekte, Methoden usw. als Variable benutzen --> Sheet
.      \\\|///      Hoffe, geholfen zu haben.
       ( ô ô )      Grüße, André aus G in T  
  ooO-(_)-Ooo    (Excel 97-2019+365)
Antworten Top
#8
Moin!
Wenn Du mehrere - aber nicht alle - Sheets in eine PDF exportieren willst, dann kannst Du nicht mit ActiveSheet.ExportAsFixedFormat arbeiten!

Dies geht dann nur über einen Umweg:
  • String-Array der gewünschten Tabellen bilden
    arr = Split("Tabelle1 Tabelle3 Tabelle5")
  • gewünschte Sheets in ein neues Workbook kopieren
    Worksheets(arr).Copy
  • das dann aktive neue Workbook in PDF umwandeln (NICHT Sheet.ExportAs… sondern Workbook.ExportAs…)
    ActiveWorkbook.ExportAsFixedFormat, xlTypePDF …
Wie Du das String-Array bildest, bleibt Dir überlassen:
hartcodiert wie oben, per Range oder per Multiselect-Listbox oder Checkboxes in einem UserForm.

Gruß Ralf
Gib einem Mann einen Fisch und du ernährst ihn für einen Tag. 
Lehre einen Mann zu fischen und du ernährst ihn für sein Leben. (Konfuzius)
Antworten Top
#9
Hallo Ralf,

bei mir schon, jedenfalls in 2016. Aufgezeichneter Code:

Code:
Sub Makro1()
'
' Makro1 Makro
'

'
    Sheets(Array("Tabelle1", "Tabelle2")).Select
    Sheets("Tabelle1").Activate
    ChDir "I:\"
    ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, Filename:="I:\Mappe1.pdf" _
        , Quality:=xlQualityStandard, IncludeDocProperties:=True, IgnorePrintAreas _
        :=False, OpenAfterPublish:=False
End Sub

In der Mappe gibt es 3 Tabellen, in jeder steht was drin. Im pdf sind es , wie gewünscht, 2.
.      \\\|///      Hoffe, geholfen zu haben.
       ( ô ô )      Grüße, André aus G in T  
  ooO-(_)-Ooo    (Excel 97-2019+365)
Antworten Top
#10
Schon klar, André.

War etwas "unscharf" (eher falsch) formuliert, weil ich Gruppierungen grundsätzlich vermeide.
Ich empfinde meine Variante "schöner".

By the way:
Du setzt eine Gruppierung ohne sie am Ende wieder aufzulösen!
Hat schon manch Mappe zerschossen. ;)

Gruß Ralf
Gib einem Mann einen Fisch und du ernährst ihn für einen Tag. 
Lehre einen Mann zu fischen und du ernährst ihn für sein Leben. (Konfuzius)
Antworten Top


Gehe zu:


Benutzer, die gerade dieses Thema anschauen: 1 Gast/Gäste