Frage von akadeluxe, 23

Hi zusammen, ich kenne mich leider null mit VBA bzw. Programmierung aus und hoffe, dass mir jemand bei dem unterem Code helfen kann!?

Ich habe eine Excel-Datei (Version 2010) die aus mehreren Tabellenblättern besteht. Das letzte Tabellenblatt soll als PDF gespeichert werden. Der unten stehende Code speichert jedoch die Komplette Arbeitsmappe als PDF. Wie müsste ich diesen umschreiben, damit er sich nur auf das letzte Tabellenblatt bezieht?

Vielen Dank im Voraus! :)

Sub SaveAsPDF() Dim varFilename As Variant

varFilename = Application.GetSaveAsFilename( _ InitialFileName:="text.pdf", _ FileFilter:="PDF (*.pdf), *.pdf", _ Title:="als PDF speichern")

If varFilename <> False Then ThisWorkbook.ExportAsFixedFormat _ Type:=xlTypePDF, _ Filename:=varFilename End If

End Sub

Hilfreichste Antwort - ausgezeichnet vom Fragesteller
von zalto, 23

Die Methode "ExportAsFixedFormat" kann man nicht nur auf ein ganzes Workbook, sondern auf einen jeglichen Zellbereich (Sheet, Chart, Range) anwenden. Da musst Du Dir nur das richtige Sheet herauspicken und die Methode aufrufen. Code-Beispiele unter

http://access-excel.tips/excel-export-excel-to-pdf-with-and-without-vba/

Kommentar von akadeluxe ,

Super, danke! :)

Antwort
von daCypher, 8

Müsste eigentlich reichen, wenn du hinter ThisWorkbook noch das Blatt schreibst, also statt:

If varFilename <> False Then 
    ThisWorkbook.ExportAsFixedFormat _ 
    Type:=xlTypePDF, _ 
    Filename:=varFilename 
End If

schreibst du

If varFilename <> False Then 
ThisWorkbook.Sheets("NameDesTabellenblatts").ExportAsFixedFormat _
Type:=xlTypePDF, _
Filename:=varFilename
End If
Kommentar von akadeluxe ,

Ich habs einfach in "activesheet" abgeändert. Hat auch geklappt. Aber danke! ;)

Kommentar von daCypher ,

Bitteschön :)

Musst halt jetzt immer drauf achten, dass das Tabellenblatt, was du als PDF haben willst auch grade aktiv ist.

Keine passende Antwort gefunden?

Fragen Sie die Community