Live-Forum - Die aktuellen Beiträge
Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender

Forumthread: eingebettete Pdfs speichern

eingebettete Pdfs speichern
27.05.2020 20:54:05
Marco
Hallo zusammen,
ich benötige mal Hilfe von echten Experten.
Wir bekommen von unseren Subunternehmern die Abrechnungen als Exceldatei mit eingebetteten PDF`s mit den Rechnungsbelegen.
Jetzt muss ich diese Rechnungsbelege immer händisch extrhieren und zusammenfassen zu einer Pdf.
Ich versuche gerade ein Macro zu schreiben um dies per Vba zu automatisieren.
Es würde mir schon reichen wenn ich diese Objekte in der von mir gewünschten Reihenfolge in einen Ordner speichern könnte.
Alles was ich bis dato im Netz gefunden habe war die Möglichkeit mittels OLEOObjekt.SaveAs zu arbeiten.
Aber anscheinend funktioniert dies unter office 365 nicht.
Kann mir jemand einen Tipp und vielleicht ein Beispiel geben? Ich stehe hier gerade voll auf dem Schlauch.
Ich schicke mal mit was ich mir bis dato zusammengereimt habe.
Sub Savepdf(Zelle As Variant)
Dim obj As Object
Dim c As Range
Set c = Tabelle1.Cells(Zelle, 4)
For Each obj In c.Worksheet.OLEObjects
If Not Intersect(obj.TopLeftCell, c) Is Nothing Then
obj.SaveAs "c:\test.pdf"
End If
Next
End Sub

Anzeige

8
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: eingebettete Pdfs speichern
28.05.2020 07:46:30
Martin
Hallo Marco,
bitte lade doch mal eine Beispieldatei mit eingebetteter PDF hier hoch. Wenn wir dir helfen sollen, brauchen wir auch etwas Unterstützung von dir. Ich habe das Makro mal leicht umgeschrieben, aber wegen fehlender Beispielmappe nicht testen können:
Sub SavePDF()
Dim obj As Object
Dim i As Integer
For Each obj In ActiveSheet.OLEObjects
i = i + 1
obj.SaveAs "c:\PDFExport" & i & ".pdf"
Next
End Sub
Viele Grüße
Martin
Anzeige
AW: eingebettete Pdfs speichern
28.05.2020 09:07:19
Marco
Hallo Martin,
erstmal danke für die promte Antwort.
Ich habe mal eine Beispieldatei erstellt und hochgeladen(Originale geht leider nicht/Firmeninterna).
Ich hatte es ausprobiert und leider kam wieder die Meldung das diese Methode nicht unterstützt wird.
MfG Marco
https://www.herber.de/bbs/user/137822.xlsm
Anzeige
AW: eingebettete Pdfs speichern
28.05.2020 10:09:55
Martin
Hallo Marco,
ich danke dir, die Beispieldatei ist völlig ausreichend.
Ich kenne mich mit eingebetteten PDF-Dateien nicht aus. Leider gelingt es mir noch nicht einmal händisch die PDF-Datei von Excel aus als PDF zu exportieren. Beim Doppelklick auf das OLEObject öffnet sich die Datei bei mir in Acrobat Reader.
Kannst du mir bitte kurz erklären ob bzw. wie du die PDF-Dateien aus Excel heraus gespeichert hast? Gibt es eine Möglichkeit die PDFs direkt aus Excel heraus als PDF zu speichern oder hast du die Dateien immer erst geöffnet und anschließend mit dem geöffneten PDF Viewer (z.B. Acrobat Reader) gespeichert?
Viele Grüße
Martin
Anzeige
AW: eingebettete Pdfs speichern
28.05.2020 10:52:04
Marco
Hallo Martin,
genauso habe ich es bis jetzt gemacht.
Geöffnet und im pdf reader gespeichert.
Ich habe eine Lösung von Case bekommen die super funktioniert sofern ich sie noch auf meine Datein angepasst bekomme.
Vielen Dank für deine Hilfe
AW: Alternative
28.05.2020 10:16:25
Fennek
Hallo,
der folgende Code speichert zwar nicht, aber er öffnet das "embeded object" in Adobe Reader. Dann kann es von Hand gespeichert werden.

Sub T_1()
Dim OLE As OLEObject
Dim WS As Worksheet: Set WS = Sheets(1)
Debug.Print OLE.Name, WS.OLEObjects.Count
Set OLE = WS.OLEObjects(1)
OLE.Verb Save 'oder SaveAs
'OLE.SaveAs "c:\users\office\desktop\pdf1.pdf" 'geht nicht
End Sub
mfg
Anzeige
Hier deine Beispieldatei...
28.05.2020 10:23:49
Case
Hallo Marco, :-)
... zurück: ;-)
Getestete Beispieldatei...
Wenn du die dann alle in eine PDF Datei zusammenführen möchtest, nimm "PDFTK":
PDFtk...
Servus
Case

Anzeige
AW: Hier deine Beispieldatei...
28.05.2020 10:48:28
Marco
Hallo Case,
erstmal WOW (mir ist erstmal die Kinnlade auf den Tisch geknallt).
Ich hätte nicht gedacht das noch eine Lösung möglich ist.
Wäre es dir möglich noch die einzelnen Zeilen zu kommentieren damit ich Anpassungen vornehmen kann?
Ich würde gerne noch die Möglicheit haben nur bestimmte Objekte auszudrucken und den Ausgabeordner festzulegen. Dein Code übersteigt meine Möglichkeiten und Fertigkeiten aber dann doch gewaltig.
MfG Marco
Anzeige
AW: @Case
28.05.2020 12:02:39
Fennek
Hallo,
der Code ist beeindruckend!
Bei meinen Versuchen der malware-Analyse in xlsx und xls konnte ich zwar "embedded objects" sehen, aber nicht verstehen, wie diese Schadware aufgerufen/ausgeführt wird.
Falls Du Interesse hast, kann ich dir per PN in einem anderen Forum einen link geben. Als Antwort wäre ein kleiner Erfahrungsbericht sehr nett.
mfg
Anzeige
;
Anzeige
Anzeige

Infobox / Tutorial

Eingebettete PDFs in Excel speichern und herunterladen


Schritt-für-Schritt-Anleitung

  1. Öffne die Excel-Datei mit den eingebetteten PDFs.

  2. Aktiviere die Entwicklertools: Gehe zu Datei > Optionen > Menüband anpassen und aktiviere die Entwicklertools.

  3. Erstelle ein neues Makro:

    • Klicke auf Entwicklertools > Visual Basic.
    • Füge ein neues Modul hinzu und kopiere den folgenden VBA-Code hinein:
    Sub SaveEmbeddedPDFs()
       Dim obj As OLEObject
       Dim i As Integer
       i = 1
    
       For Each obj In ActiveSheet.OLEObjects
           If TypeName(obj.Object) = "AcroExch.PDDoc" Then
               obj.SaveAs "C:\Pfad\Zu\Deinem\Ordner\PDF_" & i & ".pdf"
               i = i + 1
           End If
       Next obj
    End Sub
  4. Führe das Makro aus: Gehe zurück zu Excel, klicke auf Makros, wähle SaveEmbeddedPDFs und klicke auf Ausführen.

  5. Überprüfe den Zielordner: Deine PDFs sollten nun im angegebenen Ordner gespeichert sein.


Häufige Fehler und Lösungen

  • Fehlermeldung "Methode nicht unterstützt": Stelle sicher, dass du den richtigen Typ der eingebetteten Objekte überprüfst. Der Code sollte ein AcroExch.PDDoc-Objekt ansprechen.
  • PDFs werden nicht gespeichert: Überprüfe den Pfad im Code. Er sollte existieren und du musst Schreibberechtigungen für diesen Ordner haben.
  • Makro funktioniert nicht in Office 365: Manchmal gibt es Inkompatibilitäten. Teste den Code in einer älteren Excel-Version.

Alternative Methoden

Wenn das Speichern von eingebetteten PDFs nicht wie gewünscht funktioniert, kannst du auch folgende Methoden ausprobieren:

  1. Manuelles Herunterladen:

    • Klicke doppelt auf das eingebettete PDF, um es in Acrobat Reader zu öffnen, und speichere es dort.
  2. PDFTK verwenden:

    • Nutze PDFTK, um mehrere PDF-Dateien zusammenzuführen, wenn du die PDFs manuell gespeichert hast. PDFTK ist ein leistungsstarkes Tool, das dir hilft, PDF-Dateien effizient zu verwalten.

Praktische Beispiele

Hier sind einige praktische Beispiele, wie du den VBA-Code anpassen kannst:

  • Bestimmte PDFs speichern: Ändere die Bedingung im Code, um nur PDFs mit bestimmten Namen oder Eigenschaften zu speichern.
  • Ausgabeordner dynamisch festlegen: Ersetze den festen Pfad durch einen Dialog, in dem der Benutzer den Speicherort auswählen kann:

    Dim folderPath As String
    With Application.FileDialog(msoFileDialogFolderPicker)
       .Show
       folderPath = .SelectedItems(1) & "\"
    End With

Tipps für Profis

  • Nutze Error Handling: Füge On Error Resume Next ein, um Fehler zu ignorieren, die beim Speichern auftreten könnten.
  • Dokumentation: Kommentiere deinen Code ausführlich, um die Nachvollziehbarkeit zu erhöhen und anderen Benutzern das Verständnis zu erleichtern.
  • Automatisierung: Überlege, ob du die PDFs regelmäßig extrahieren musst. In diesem Fall könntest du das Makro automatisiert über einen Zeitplan laufen lassen.

FAQ: Häufige Fragen

1. Wie kann ich eingebettete PDFs in Excel herunterladen? Du kannst eingebettete PDFs mit einem VBA-Makro speichern, das die PDFs automatisch in einen angegebenen Ordner speichert.

2. Was ist OLE in Bezug auf Excel? OLE (Object Linking and Embedding) ermöglicht es, Objekte wie PDFs in Excel zu integrieren. Mit OLE kannst du eingebettete Dateien direkt in Excel verwenden.

3. Wo finde ich die VBA-Entwicklertools in Excel? Die Entwicklertools findest du unter Datei > Optionen > Menüband anpassen. Aktiviere die Entwicklertools, um auf VBA zuzugreifen.

4. Wie kann ich mehrere PDFs als eine Datei speichern? Verwende PDFTK, um mehrere PDFs zu einer einzigen Datei zusammenzuführen, nachdem du sie aus Excel extrahiert hast.

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Entdecke mehr
Finde genau, was du suchst

Die erweiterte Suchfunktion hilft dir, gezielt die besten Antworten zu finden

Suche nach den besten Antworten
Unsere beliebtesten Threads

Entdecke unsere meistgeklickten Beiträge in der Google Suche

Top 100 Threads jetzt ansehen
Anzeige