Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender

Forumthread: pdf speichern unter per VBA

pdf speichern unter per VBA
Michi
Liebe VBA-Freaks,
ich hab folgendes Problem: aus einer pdf- Datei mit mehreren Seiten lösche ich immer viele Seiten und speicher die Datei unter einem neuen Namen als pdf ab mit pdDoc.Save 1, ablage & "\" & "-000.pdf". Dabei wird die Datei relativ groß (ca. 400 KB). Wenn ich sie nun manuell öffne und unter demselben Namen abspeicher, ist sie nur noch ca. 15 KB groß. Das würde ich gern automatisieren bzw. schon im "Zerlege"-Code einbauen. Ist das möglich?
Wär klasse, wenn Ihr mir helfen könntet.
Ach noch was. Im Schritt vorher zerleg ich eine große pdf-Datei mit 40 MB in 10-20 kleinere mit demselben Code. Hier ist die Dateigröße dann "normal". Die neuen pdf-Dateien haben dann eine Größe von 3,5 MB. Und das versteh ich nicht ...
Viele Grüße
Michi
Anzeige

2
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Benutzer
Anzeige
AW: pdf speichern unter per VBA
18.03.2011 13:09:23
Hajo_ZI
Hallo Michi,
vielleicht solltest Du mal schreiben wie Du unter Excel ein PDF Dokument öffnest und bearbeitest?

AW: pdf speichern unter per VBA
18.03.2011 13:26:56
Michi
Hallo Hajo,
sorry, war zu ungenau. Verweis auf Acrobat ist gesetzt, hab den Acrobat 7.0.
Hier der Code in Kurzform:
Sub zerlegen()
Dim pdDoc As Acrobat.CAcroPDDoc
Set pdDoc = CreateObject("AcroExch.PDDoc")
'Datei öffnen
pdDoc.Open Sheets("Datei").[A1]
'nicht benötigte Seiten löschen
pdDoc.DeletePages Sheets("Seiten_PersNr").Cells(i, 3) + 1, pdDoc.GetNumPages - 1
If Sheets("Seiten_PersNr").Cells(i, 3) > 0 Then
pdDoc.DeletePages 0, Sheets("Seiten_PersNr").Cells(i, 2) - 1
End If
seitenanzahl = pdDoc.GetNumPages
'neu abspeichern
pdDoc.Save 1, ablage & "\" & "-000.pdf"
'Close
pdDoc.Close
Set pdDoc = Nothing
End Sub
Viele Grüße
Michi
Anzeige
;

Forumthreads zu verwandten Themen

Anzeige
Anzeige
Anzeige

Infobox / Tutorial

PDF speichern unter per VBA in Excel


Schritt-für-Schritt-Anleitung

Um eine PDF-Datei mit VBA in Excel zu speichern, kannst du den folgenden Code verwenden. Dieser Code öffnet eine PDF-Datei, löscht nicht benötigte Seiten und speichert die Datei unter einem neuen Namen ab.

  1. Verweis auf Acrobat setzen: Stelle sicher, dass du in Excel den Verweis auf die Acrobat-Bibliothek gesetzt hast. Dies ist notwendig, um mit AcroExch.PDDoc arbeiten zu können.

  2. VBA-Editor öffnen: Drücke ALT + F11, um den VBA-Editor zu öffnen.

  3. Modul erstellen: Klicke mit der rechten Maustaste auf "VBAProject (DeineDatei.xlsx)" und wähle "Einfügen" > "Modul".

  4. Code einfügen: Kopiere den folgenden Code in das Modul.

    Sub zerlegen()
       Dim pdDoc As Acrobat.CAcroPDDoc
       Set pdDoc = CreateObject("AcroExch.PDDoc")
       ' Datei öffnen
       pdDoc.Open Sheets("Datei").[A1]
       ' Nicht benötigte Seiten löschen
       pdDoc.DeletePages Sheets("Seiten_PersNr").Cells(i, 3) + 1, pdDoc.GetNumPages - 1
       If Sheets("Seiten_PersNr").Cells(i, 3) > 0 Then
           pdDoc.DeletePages 0, Sheets("Seiten_PersNr").Cells(i, 2) - 1
       End If
       ' Neu abspeichern
       pdDoc.Save 1, ablage & "\" & "-000.pdf"
       ' Schließen
       pdDoc.Close
       Set pdDoc = Nothing
    End Sub
  5. Makro ausführen: Schließe den VBA-Editor und führe das Makro aus, um das PDF zu speichern.


Häufige Fehler und Lösungen

  • Fehler: "pdf speichern geht nicht"
    Überprüfe, ob die Datei, die du öffnen möchtest, tatsächlich existiert und der Pfad korrekt ist.

  • Fehler: "pdf datei speichern unter geht nicht"
    Stelle sicher, dass du die richtigen Berechtigungen zum Speichern in dem angegebenen Verzeichnis hast.

  • Fehler: "excel als pdf speichern funktioniert nicht"
    Überprüfe, ob die Acrobat-Bibliothek richtig installiert und eingebunden ist.


Alternative Methoden

Eine weitere Möglichkeit, um PDFs in Excel zu speichern, besteht darin, die Funktion "Speichern unter" manuell zu verwenden. Du kannst auch die Adobe Reader-Einstellungen anpassen, um das Speichern ohne Nachfrage zu aktivieren.

  • Adobe Reader speichern ohne Nachfrage: Gehe zu den Einstellungen und deaktiviere die Option "Nach dem Speichern fragen".

Praktische Beispiele

Wenn du nur eine bestimmte Seite aus einem PDF speichern möchtest, kannst du den Code wie folgt anpassen:

pdDoc.Save 1, ablage & "\" & "Seite_" & Sheets("Seiten_PersNr").Cells(i, 2) & ".pdf"

Mit dieser Anpassung wird die PDF-Datei nur für die angegebene Seite gespeichert.


Tipps für Profis

  • Tastenkombinationen nutzen: Du kannst die Tastenkombination speichern unter verwenden, um schneller auf die Speichern-Funktion zuzugreifen.

  • PDF Optimierung: Um die Dateigröße zu reduzieren, kannst du beim Speichern die Option wählen, um die Datei neu zu komprimieren.

  • Excel Makro PDF speichern / Pfad auswählen: Du kannst den Benutzer auffordern, den Speicherort für die PDF-Datei auszuwählen, indem du einen Dialog zur Dateiauswahl einfügst.


FAQ: Häufige Fragen

1. Wie kann ich eine einzige Seite aus einer PDF speichern?
Du kannst die Funktion pdDoc.DeletePages verwenden, um alle anderen Seiten zu löschen und anschließend die gewünschte Seite zu speichern.

2. Warum ist die Dateigröße nach dem Speichern so groß?
Die Dateigröße kann durch nicht komprimierte Bilder oder eingebettete Schriftarten verursacht werden. Überprüfe die Einstellungen beim Speichern und wähle die Option zur Komprimierung.

3. Was ist der Unterschied zwischen Save 1 und Save 0?
Save 1 bedeutet, dass die Datei überschrieben wird, während Save 0 die Datei als neue Datei speichert. Achte darauf, die richtige Option je nach Bedarf zu verwenden.

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige