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

Forumthread: PDF nach Seitenanzahl erzeugen, speichern

PDF nach Seitenanzahl erzeugen, speichern
11.06.2017 21:28:09
Thorsten
Einen schönen guten Abend,
ich muss für die liebe Behörden ein paar hundert Rechnungen „PDF-en“ 😊
Problem: Die Rechnungsmaske hat 20 Seiten und die Rg. differenzieren zw. 1 – 20 Seiten. Habe begonnen diese einzeln als PDF zu speichern, nur da macht man sich ganz schön zur Pfeile, jedes Mal Pfad zu wählen und in Optionen die jeweilige Seitenzahl festzulegen.
Selber habe ich von VBA keinen Dunst. Aber in einer anderen Datei habe ich aus einer Bezahlarbeit einen größeren Code der E-Mails versendet und nebenbei auch PDF speichert. Nun habe ich versucht den dafür relevanten Teil herauszukopieren und für dieses Vorhaben einzusetzen.
Sub PDFspeichern()
Dim Object, sPath$, sFileName$, sPfadUndDateiname$
sPath = Sheets("WE").Range("A5").Value
sFileName = Sheets("WE").Range("A6").Value
sPfadUndDateiname = sPath & sFileName
Sheets("WE").Range("Druckbereich").ExportAsFixedFormat Type:=xlTypePDF, _
Filename:=sPfadUndDateiname, Quality:=xlQualityStandard,  _
IncludeDocProperties:=False, _
IgnorePrintAreas:=True, OpenAfterPublish:=False
End Sub
Anfänglich sieht es gut aus. Der PDF-Balken erscheint aber dann kommt doch der Debugger und der untere Abschnitt ist alles Gelb markiert.
Das müsste behoben werden.
Und dann fehlt noch die entscheidende Vorgabe im Code: die Seitenzahl, welche gedruckt werden soll.
Diese habe ich per Formel ermittelt und steht in Sheets("WE").Range("A6").
Kann hier jemand helfen?
Wäre natürlich ein Traum, wenn ich diese per Knopfdruck runterrattern kann.
Viele Grüße aus Markkleeberg
Thorsten
Anzeige

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

Betreff
Datum
Anwender
Anzeige
AW: PDF nach Seitenanzahl erzeugen, speichern
11.06.2017 21:56:54
Thorsten
Sorry, Seitenzahl steht natürlich nit in A6 sondern A7.
Gruß Thorsten
AW: PDF nach Seitenanzahl erzeugen, speichern
11.06.2017 23:57:31
fcs
Hallo Thorsten,
du musst natürlich die Seitenzahlen "from" und "to" as Parameter übergeben.
Und der Parameter "IgnorePrintArea" muss auf False gesetzt werden,
Dann wird aus dem Blatt "WE" die entpechende Seitenzahl des Druckbereich als PDF gespeichert.
Gruß
Franz
Sub PDFspeichern()
Dim Object, sPath$, sFileName$, sPfadUndDateiname$, intPage As Integer
sPath = Sheets("WE").Range("A5").Value
sFileName = Sheets("WE").Range("A6").Value
intPage = Sheets("WE").Range("A7").Value
sPfadUndDateiname = sPath & sFileName
Sheets("WE").Range("Druckbereich").ExportAsFixedFormat Type:=xlTypePDF, _
Filename:=sPfadUndDateiname, Quality:=xlQualityStandard, _
From:=1, to:=intPage, _
IncludeDocProperties:=False, IgnorePrintAreas:=False, OpenAfterPublish:=False
End Sub

Anzeige
AW: PDF nach Seitenanzahl erzeugen, speichern
12.06.2017 00:40:32
Thorsten
Hallo Frank,
vielen Dank für HIlfe zur späten Stunde.
Der Code ist in einem Modul. Leider kommt trotzdem der Debugger. Irgendwas an der letzten Zeile scheint Excel nicht zu gefallen.
Hier Bild, falls das hilft:
https://www.herber.de/bbs/user/114204.jpg
Habe den Code auch in in die Tabelle gelegt, da kommt Fehler 400.
Gruß Thorsten
Anzeige
AW: PDF nach Seitenanzahl erzeugen, speichern
12.06.2017 00:47:29
Thorsten
Hallo Franz,
sorry, mein Fehler, trotz mehrfacher Pfadüberprüfung war ein Fehler drin.
Brauche dringend eine Brille :-(
Funktioniert prima.
Also besten Dank
Gruß Thorsten
;
Anzeige
Anzeige

Infobox / Tutorial

PDF nach Seitenanzahl speichern in Excel


Schritt-für-Schritt-Anleitung

  1. Öffne deine Excel-Datei und stelle sicher, dass die Daten, die du in PDF umwandeln möchtest, korrekt sind.

  2. Definiere die Druckbereiche in deinem Excel-Blatt. Stelle sicher, dass der Druckbereich korrekt festgelegt ist, da dieser im PDF verwendet wird.

  3. Erstelle ein neues Modul in Excel:

    • Öffne den VBA-Editor mit ALT + F11.
    • Klicke auf Einfügen > Modul.
  4. Füge den folgenden VBA-Code ein:

    Sub PDFspeichern()
       Dim sPath As String, sFileName As String, sPfadUndDateiname As String
       Dim intPage As Integer
    
       sPath = Sheets("WE").Range("A5").Value
       sFileName = Sheets("WE").Range("A6").Value
       intPage = Sheets("WE").Range("A7").Value
       sPfadUndDateiname = sPath & sFileName
    
       Sheets("WE").Range("Druckbereich").ExportAsFixedFormat Type:=xlTypePDF, _
       Filename:=sPfadUndDateiname, Quality:=xlQualityStandard, _
       From:=1, To:=intPage, _
       IncludeDocProperties:=False, IgnorePrintAreas:=False, OpenAfterPublish:=False
    End Sub
  5. Schließe den VBA-Editor und gehe zurück zu Excel.

  6. Führe das Makro aus:

    • Gehe zu Entwicklertools > Makros.
    • Wähle PDFspeichern aus und klicke auf Ausführen.
  7. Überprüfe das gespeicherte PDF an dem Ort, den du in A5 definiert hast.


Häufige Fehler und Lösungen

  • Debugger erscheint beim Ausführen:

    • Überprüfe den Pfad in A5 und den Dateinamen in A6. Stelle sicher, dass keine ungültigen Zeichen enthalten sind.
  • Fehler 400:

    • Dies kann auftreten, wenn ein Fehler im VBA-Code vorliegt. Überprüfe alle Zeilen sorgfältig und stelle sicher, dass die Variablen korrekt definiert sind.
  • Seitenzahlen werden nicht korrekt gespeichert:

    • Achte darauf, dass die Seitenzahl in A7 korrekt ist und dem tatsächlichen Druckbereich entspricht.

Alternative Methoden

Falls du keine VBA-Makros verwenden möchtest, kannst du auch Excel als PDF speichern auf einer Seite, indem du die integrierte Funktion "Speichern unter" verwendest:

  1. Gehe zu Datei > Speichern unter.
  2. Wähle den Speicherort aus und wähle als Dateityp PDF.
  3. Klicke auf Optionen und stelle sicher, dass du den gewünschten Druckbereich auswählst.

Diese Methode eignet sich allerdings nicht für das Speichern von pdf mehreren Seiten einzeln.


Praktische Beispiele

Wenn du Rechnungen mit unterschiedlichen Seitenzahlen hast, kannst du den oben genannten VBA-Code verwenden, um automatisch PDFs zu erstellen. Setze die Seitenzahl in A7 entsprechend der Rechnung, die du speichern möchtest, und führe das Makro aus.

Wenn du beispielsweise eine Rechnung hast, die 5 Seiten umfasst, gib 5 in A7 ein. Das Skript erstellt dann ein PDF von nur diesen 5 Seiten.


Tipps für Profis

  • Automatisierung: Du kannst das Makro erweitern, um mehrere Rechnungen in einem Durchlauf zu speichern, indem du eine Schleife verwendest, die durch eine Liste von Seitenzahlen iteriert.

  • Fehlerbehandlung: Füge Fehlerbehandlungsroutinen hinzu, um das Makro robuster zu machen. Dies kann helfen, Probleme zu identifizieren, wenn etwas schiefgeht.

  • PDF-Seitenzahlen einfügen: Wenn du Seitenzahlen zum PDF hinzufügen möchtest, kannst du dies in Excel tun, indem du die Seitenzahlen in den Kopf- oder Fußzeilen der Blätter einfügst.


FAQ: Häufige Fragen

1. Wie kann ich sicherstellen, dass nur bestimmte Seiten in das PDF aufgenommen werden? Du kannst die Seitenzahl in A7 anpassen, um nur die gewünschten Seiten zu speichern.

2. Was mache ich, wenn ich mehrere PDFs gleichzeitig speichern möchte? Erweitere das VBA-Skript, um eine Schleife zu implementieren, die durch eine Liste von Seitenzahlen iteriert und für jede Seite ein PDF erstellt.

3. Wie kann ich die Datei nach dem Speichern automatisch öffnen? Setze OpenAfterPublish:=True im ExportAsFixedFormat-Befehl, um das PDF direkt nach dem Speichern zu öffnen.

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