Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1764to1768
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
Shape in PDF umwandeln
11.06.2020 00:47:59
Stefan
Hallo,
ich habe eine Arbeitsmappe, aus der ich enthaltene Shape Objekte nach PDF umwandeln, bzw exportieren möchte.
Mit den mir zur Verfügung stehenden Makros kann ich Charts, Bereiche oder Arbeitsblätter in PDFs umwandeln. Bei Shape Objekten versagten alle meine Versuche.
Hat irgendwer eine Idee, wie sich dies bewerkstelligen liesse?
Danke im voraus.
https://www.herber.de/bbs/user/138211.xlsm

4
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Shape in PDF umwandeln
11.06.2020 14:12:57
Stefan

Sub SaveShapeAsPDF()
'Create and assign variables
Dim saveLocation As String
'Dim cht As Chart
Dim shp As shape
saveLocation = "C:\Users\XXX\Documents\01 xls\03 Prive\011 PSP Experimente\myPDFFile.pdf"
Set shp = ActiveSheet.Shapes(1)
'sht.ChartObjects("Chart 1").Chart
'Alternative using the active chart
'Set cht = ActiveChart
'Save a chart as PDF
shp.ExportAsFixedFormat Type:=xlTypePDF, FileName:=saveLocation
End Sub

Soweit bin ich gekommen. Fehlermeldung in der letzten Zeile, offenbar gibt es bezüglich eines Shapeobjektes Restriktionen. Weiss einfach nicht weiter
Anzeige
AW: Shape in PDF umwandeln
11.06.2020 17:06:00
fcs
Hallo Stefan,
bei Shapes hast du nur die Möglichkeit den Zellbereich mit dem Shape als PDF zu speichern.
Für das einzelne Shape gibt es keine Möglichkeit der direkten Speicherung.
Hier mal 2 Beispielmakros.
das 1. Makro arbeite alle Shapes in einer Arbeitsmappe ab und du kannst entscheiden, ob du es speichern möchtes.
Das 2. Makro speichert das selektierte Shape.
Nach Möglichkeit wird der Zellbereich mit dem Shape in die linke obere Exke des Ecelfensters gescrollt.
LG
Franz

Sub Shapes_to_PDF()
'Speichern der Zellbereiche mit Shapes auf allen tabellenblättern in der Arbeitsmappe.
Dim ThisRng As Range
Dim strfile As String
Dim myfile As Variant
Dim wks As Worksheet
Dim oShape As shape
Dim PathSave As String
PathSave = ThisWorkbook.Path & Application.PathSeparator
For Each wks In ActiveWorkbook.Worksheets
wks.Select
For Each oShape In wks.Shapes
Set ThisRng = wks.Range(oShape.TopLeftCell, oShape.BottomRightCell)
ActiveWindow.ScrollRow = ThisRng.Row
ActiveWindow.ScrollColumn = ThisRng.Column
oShape.Select
strfile = wks.Name & " - " & oShape.Name & ".pdf"
myfile = Application.GetSaveAsFilename _
(InitialFileName:=PathSave & strfile, _
FileFilter:="PDF Files (*.pdf), *.pdf", _
Title:="Select Folder and File Name to Save as PDF")
If myfile  False Then 'save as PDF
ThisRng.ExportAsFixedFormat Type:=xlTypePDF, FileName:= _
myfile, Quality:=xlQualityStandard, IncludeDocProperties:=True, _
IgnorePrintAreas:=True, OpenAfterPublish:=False
End If
If MsgBox("Nächstes Shape selektieren?", _
vbQuestion + vbOKCancel, "Shapes als pdf speichern") = vbCancel Then Exit Sub
Next oShape
Next wks
MsgBox "Fertig, alle Shapes wurden angezeigt/gedruckt"
End Sub
Sub Shapes_Selektiertes_to_PDF()
'Speichern des Zellbereiches mit dem selektierten Shape
Dim ThisRng As Range
Dim strfile As String
Dim myfile As Variant
Dim oShape As Object
Dim PathSave As String
On Error GoTo Fehler
PathSave = ThisWorkbook.Path & Application.PathSeparator
Set oShape = Selection
Set ThisRng = ActiveSheet.Range(oShape.TopLeftCell, oShape.BottomRightCell)
ActiveWindow.ScrollRow = ThisRng.Row
ActiveWindow.ScrollColumn = ThisRng.Column
strfile = ActiveSheet.Name & " - " & oShape.Name & ".pdf"
myfile = Application.GetSaveAsFilename _
(InitialFileName:=PathSave & strfile, _
FileFilter:="PDF Files (*.pdf), *.pdf", _
Title:="Select Folder and File Name to Save as PDF")
If myfile  False Then 'save as PDF
ThisRng.ExportAsFixedFormat Type:=xlTypePDF, FileName:= _
myfile, Quality:=xlQualityStandard, IncludeDocProperties:=True, _
IgnorePrintAreas:=True, OpenAfterPublish:=True
End If
Fehler:
With Err
Select Case .Number
Case 0 'alle OK
Case 438 'alle OK
MsgBox "Fehler-Nr.: " & .Number & vbLf & .Description & vbLf & vbLf _
& "vermutlich wurde kein Shape-Obket selektiert!", _
vbOKOnly, "Selektiertes Shape als PDF speichern"
Case Else
MsgBox "Fehler-Nr.: " & .Number & vbLf & .Description
End Select
End With
End Sub

Anzeige
AW: Shape in PDF umwandeln
11.06.2020 17:59:23
fcs
Hallo Stefan,
bei Shapes hast du nur die Möglichkeit den Zellbereich mit dem Shape als PDF zu speichern.
Für das einzelne Shape gibt es keine Möglichkeit der direkten Speicherung.
Hier mal 2 Beispielmakros.
das 1. Makro arbeite alle Shapes in einer Arbeitsmappe ab und du kannst entscheiden, ob du es speichern möchtes.
Das 2. Makro speichert das selektierte Shape.
Nach Möglichkeit wird der Zellbereich mit dem Shape in die linke obere Exke des Ecelfensters gescrollt.
LG
Franz

Sub Shapes_to_PDF()
'Speichern der Zellbereiche mit Shapes auf allen tabellenblättern in der Arbeitsmappe.
Dim ThisRng As Range
Dim strfile As String
Dim myfile As Variant
Dim wks As Worksheet
Dim oShape As shape
Dim PathSave As String
PathSave = ThisWorkbook.Path & Application.PathSeparator
For Each wks In ActiveWorkbook.Worksheets
wks.Select
For Each oShape In wks.Shapes
Set ThisRng = wks.Range(oShape.TopLeftCell, oShape.BottomRightCell)
ActiveWindow.ScrollRow = ThisRng.Row
ActiveWindow.ScrollColumn = ThisRng.Column
oShape.Select
strfile = wks.Name & " - " & oShape.Name & ".pdf"
myfile = Application.GetSaveAsFilename _
(InitialFileName:=PathSave & strfile, _
FileFilter:="PDF Files (*.pdf), *.pdf", _
Title:="Select Folder and File Name to Save as PDF")
If myfile  False Then 'save as PDF
ThisRng.ExportAsFixedFormat Type:=xlTypePDF, FileName:= _
myfile, Quality:=xlQualityStandard, IncludeDocProperties:=True, _
IgnorePrintAreas:=True, OpenAfterPublish:=False
End If
If MsgBox("Nächstes Shape selektieren?", _
vbQuestion + vbOKCancel, "Shapes als pdf speichern") = vbCancel Then Exit Sub
Next oShape
Next wks
MsgBox "Fertig, alle Shapes wurden angezeigt/gedruckt"
End Sub
Sub Shapes_Selektiertes_to_PDF()
'Speichern des Zellbereiches mit dem selektierten Shape
Dim ThisRng As Range
Dim strfile As String
Dim myfile As Variant
Dim oShape As Object
Dim PathSave As String
On Error GoTo Fehler
PathSave = ThisWorkbook.Path & Application.PathSeparator
Set oShape = Selection
Set ThisRng = ActiveSheet.Range(oShape.TopLeftCell, oShape.BottomRightCell)
ActiveWindow.ScrollRow = ThisRng.Row
ActiveWindow.ScrollColumn = ThisRng.Column
strfile = ActiveSheet.Name & " - " & oShape.Name & ".pdf"
myfile = Application.GetSaveAsFilename _
(InitialFileName:=PathSave & strfile, _
FileFilter:="PDF Files (*.pdf), *.pdf", _
Title:="Select Folder and File Name to Save as PDF")
If myfile  False Then 'save as PDF
ThisRng.ExportAsFixedFormat Type:=xlTypePDF, FileName:= _
myfile, Quality:=xlQualityStandard, IncludeDocProperties:=True, _
IgnorePrintAreas:=True, OpenAfterPublish:=True
End If
Fehler:
With Err
Select Case .Number
Case 0 'alle OK
Case 438 'alle OK
MsgBox "Fehler-Nr.: " & .Number & vbLf & .Description & vbLf & vbLf _
& "vermutlich wurde kein Shape-Obket selektiert!", _
vbOKOnly, "Selektiertes Shape als PDF speichern"
Case Else
MsgBox "Fehler-Nr.: " & .Number & vbLf & .Description
End Select
End With
End Sub

Anzeige
AW: Shape in PDF umwandeln
12.06.2020 12:50:52
Stefan
Danke Franz, das hab ich befürchtet...
Naja, ist halt so, man kann nicht immer alles haben.
liebe Grüße,
Stefan

313 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige