Collapse column

Autor Thema: Excel 2013: Bestimmte Sheets per Button-Click als pdf speichern  (Gelesen 654 mal)

Offline ExcelsisDeo

  • Newbie
  • *
  • Beiträge: 2
    • Profil anzeigen
  • Office-KnowHow: Fortgeschritten
  • VBA-KnowHow- : Ohne
  • Version [Office] : Office 2013
Excel 2013: Bestimmte Sheets per Button-Click als pdf speichern
« am: Mai 08, 2018, 23:47:08 Nachmittag »
Hallöchen,

bin neu hier und bedanke mich schon mal im Voraus für viele Fragen, die mir hier über die Jahre beantwortet wurden ohne, dass ich mich überhaupt erst anmelden musste  ;)

Leider wurde ich dieses mal nicht fündig, da sich meinem Problem neben kuriosen Hürden auch meine mangelnden VBA-Kenntnisse stellen.

Wobei ich dises Mal Eure Hilfe bräuchte (versuche mich so kurz und knapp wie möglich zu fassen)

Ich habe eine Arbeitsmappe mit vielen Arbeitsblättern:
 
  • Über einen Button-Click soll eine vordefinierte Auswahl an Arbeitsblättern als pdf-File abgespeichert werden.
  • Das pdf-File soll dabei im gleichen Ordner abgelegt werden, in dem sich das Excel-File befindet
  • Der Name des pdf-File soll aus einer bestimmten Zelle bezogen werden
  • Falls möglich: Bevor das pdf-File abgespeichert wird, würde ich gerne Dateinamen und Ordner nochmal kontrollieren können


Was ich bisher versucht habe

Anmerkung: Das manuelle speichern eines einzelnen Sheets als pdf funktioniert genauso problemlos wie das manuelle speichern der gesamten Arbeitsmappe als pdf.
Wenn ich allerdings mit STRG die gewünschten Sheets markiere und dann nur diese Auswahl als pdf speichern will, erhalte ich ein pdf-File mit leeren Seiten (immerhin die richtige Anzahl an Seiten)


Auf meiner Suche nach einer Lösung im Internet habe ich 2 Ansätze gefunden:

1. Ansatz

Quelle: http://www.herber.de/forum/archiv/1272to1276/1274667_mehrere_Arbeitsblaetter_ein_eine_PDF_speichern.html

Sub Sheets2PDF()

    Sheets(Array("Tabelle1", "Tabelle2", "Tabelle3")).Select
   
    Selection.ExportAsFixedFormat _
    Type:=xlTypePDF, _
    Filename:=ThisWorkbook.Path & "\Mappe.pdf", _
    Quality:=xlQualityStandard, _
    IncludeDocProperties:=True, _
    IgnorePrintAreas:=False, _
    OpenAfterPublish:=True
   
End Sub

Problem:Erfüllt gerade mal die erste Bedingung, das pdf-File enthält aber nur leere Blätter (siehe Anmerkung oben).

2. Ansatz

Quelle: http://www.clever-excel-forum.de/thread-3990-post-33518.html#pid33518

Sub Schaltfläche2_SpeichernUnter1()

Dim arrSheet As Variant
Dim strDatei As String

With ThisWorkbook
    With .Sheets("Tabelle1")
         strDatei:= ThisWorkbook.Path & "\" blabla & ".pdf"
                   
    End With
   .Sheets(Array("Tabelle1", "Tabelle3")).Copy
End With

With ActiveWorkbook
        .ExportAsFixedFormat Type:=xlTypePDF, Filename:=strDatei, _
                             Quality:=xlQualityStandard, _
                             IncludeDocProperties:=True, _
                             IgnorePrintAreas:=False, _
                             OpenAfterPublish:=True
        .Close savechanges:=False
End With
End Sub

Probleme:
  • speichert direkt ohne vorher noch prüfen zu lassen
  • Dateiname müsste noch in Abhängigkeit einer bestimmten Zelle definiert werden
  • Kurios:ändert die Hintergrundfarbe mancher Zellen. Bpsw. werden alle mit einem bleichen orange hinterlegten Zellen im pdf-File und der temporär angelegten Arbeitsmappe grün
  • Die zwischenzeitlich erstellte Mappe ist etwas nervig. Könnte ich aber mit leben

Keine Lösung gefunden? Du kannst Dich gerne an unser erfahrenes Experten-Team wenden und Dein Anliegen in Auftrag geben.
>>> Schnell und einfach ein unverbindliches Angebot anfordern. Per E-Mail an anfrage@excel-inside.de oder per Online-Formular
<<<

!!! Wichtige Information
!!! Dieses Forum steht aus technischen Gründen ab dem 11. September 2019 nur noch im Lesemodus zur Verfügung.
Das NEUE Office-Fragen-Forum kannst du aber unter der gewohnten Domain https://office-fragen.de wie gewohnt nutzen.

- Wir freuen uns auf deinen Besuch im neuen Forum.

Offline maninweb

  • Global Moderator
  • Hero Member
  • *****
  • Beiträge: 1.063
    • Profil anzeigen
    • Excel Formula Translator
  • Office-KnowHow: Experte
  • VBA-KnowHow- : Sehr gut
  • Version [Office] : Office 2016
Antw: Excel 2013: Bestimmte Sheets per Button-Click als pdf speichern
« Antwort #1 am: Mai 09, 2018, 08:48:17 Vormittag »
Hallo,

versuche es mal mit ActiveSheet statt Selection, also so...

Code: Visual Basic
  1. Sub Sheets2PDF()
  2.  
  3.     Sheets(Array("Tabelle1", "Tabelle2", "Tabelle3")).Select
  4.    
  5.     ActiveSheet.ExportAsFixedFormat _
  6.     Type:=xlTypePDF, _
  7.     Filename:=ThisWorkbook.Path & "\Mappe.pdf", _
  8.     Quality:=xlQualityStandard, _
  9.     IncludeDocProperties:=True, _
  10.     IgnorePrintAreas:=False, _
  11.     OpenAfterPublish:=True
  12.    
  13. End Sub

Gruß
Microsoft Excel Expert · Microsoft Most Valuable Professional (MVP) from 01/2011 - 06/2019
https://de.excel-translator.de :: Online Excel-Formel-Übersetzer :: Alle Übersetzungen der Excel Funktionen & Fehlerwerte

Offline ExcelsisDeo

  • Newbie
  • *
  • Beiträge: 2
    • Profil anzeigen
  • Office-KnowHow: Fortgeschritten
  • VBA-KnowHow- : Ohne
  • Version [Office] : Office 2013
Antw: Antw: Excel 2013: Bestimmte Sheets per Button-Click als pdf speichern
« Antwort #2 am: Mai 09, 2018, 22:01:03 Nachmittag »
Hallo,

versuche es mal mit ActiveSheet statt Selection, also so..

Danke, hat soweit super geklappt. Einfache Lösung.

Zwar speichert er die Datei direkt ab ohne mich nochmal kontrollieren zu lassen, da aber Speichertort und Namensstruktur von Zelleninhalten definiert sind, macht mir das nichts aus.


Vielen Vielen Dank für die schnelle Lösung

Wenn du dich noch intensiver mit Excel beschäftigen möchtest, dann empfiehlt sich ein Online-Kurs,
in dem du sehr viel über Excel erfährst und das gelernte umgehend in der Praxis anwenden kannst.