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

Fehler bei PDF Generierung - Laufzeitfehler

Forumthread: Fehler bei PDF Generierung - Laufzeitfehler

Fehler bei PDF Generierung - Laufzeitfehler
26.11.2015 13:05:12
Matthias
Hallo liebe Helfer,
ich habe ein Problem bei der Generierung eines PDF Dokumentes aus Excel heraus, was über ein Makro funktioniert. Mein Problem: Auf meinem Rechner funktioniert es einwandfrei, auf meinem Laptop aber nicht, obwohl gleiche Systemlandschaft (Beides Win7, Office 2010 -identische Einstellungen - nur anderes Netzwerk)
Auf dem Laptop wird das Makro auch ausgeführt und bricht dann immer an dieser Stelle ab:
Laufzeitfehler: '-2147018887 (80071779)
ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, Quality:=xlQualityStandard, IncludeDocProperties:=True, IgnorePrintAreas:=False, OpenAfterPublish:=True
Offensichtlich gibt es ein Problem beim abspeichern. ABER WIESO? Es ist keine anderes PDF geöffnet, was z.B. den gleichen Dateinamen trägt. Auch mit "speichern unter" und Änderung des Dateinamen, funktioniert es leider nicht. Ist evt. der Speicherort des Rätsels Lösung? Ich bin ratlos. Könnt Ihr weiterhelfen?
Hier der Code
------------------------
Private Sub CMDweiter_Click()
'Prüfung ob Text Vorhanden
'On Error GoTo Errorhandler
If Me.TextKunde.Value = "" Then
MsgBox ("Name des Kunden fehlt!")
Exit Sub
End If
' wird ausgeführt wenn auf Weiter geklickt wird
With Tabelle5
.Range("C28").Value = Me.TextKunde.Value
End With
Unload Me
Dim sh As Object
Dim arr() As Variant
Dim i As Integer
For Each sh In ThisWorkbook.Sheets
If sh.Visible = xlSheetVisible Then
i = i + 1
ReDim Preserve arr(1 To i)
arr(i) = sh.Name
End If
Next sh
Sheets(arr).Select
ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, Quality:=xlQualityStandard,  _
IncludeDocProperties:=True, IgnorePrintAreas:=False, OpenAfterPublish:=True
Exit Sub
'Errorhandler:
'    MsgBox "Bitte schließen Sie vorher das alte PDF Dokument"
Resume Next
End Sub

Vielen Dank und Gruß
Matthias

Anzeige

5
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Fehler bei PDF Generierung - Laufzeitfehler
26.11.2015 16:12:58
fcs
Mathias,
es kann Probleme geben, wenn das aktive Verzeichnis schreibgeschützt ist oder du als angemeldeter User keine Schreibberechtigung.
Aber dies ist bei deinem LapTop doch eher unwahrschlich.
Dann wäre noch die Möglichkeit, dass mit USB-Stick oder anderen Wechsellaufwerken am Lap-Top gearbeitet wird, die aber nicht mehr verfügbar sind.
Idealer Weise laßt man Excel hier nicht einfach wild darauflosspeichern, sondern gibt für den Dateinamen der PDF-Datei das Verzeichnis und den Dateinamen vor.
z.B.:
strDatei = Thisworkbook.Path & Application.Pathseparator & "Dateiname" & Format(Now, YYYYMMDD hhmmss") & ".PDF"
Gruß
Franz

Anzeige
AW: Fehler bei PDF Generierung - Laufzeitfehler
26.11.2015 16:42:05
Matthias
Hallo Franz,
vielen Dank für Deine Antwort. Wenn ich dich recht verstanden habe wird dann das PDF in dem selben Verzeichnis gespeichert wie das Excel file?
Wie würde das im Code aussehen? So etwa oder was würdest du vorschlagen?
Private Sub CMDweiter_Click()
'Prüfung ob Text Vorhanden
On Error GoTo Errorhandler
If Me.TextKunde.Value = "" Then
MsgBox ("Name des Kunden fehlt!")
Exit Sub
End If
' wird ausgeführt wenn auf Weiter geklickt wird
With Tabelle5
.Range("C28").Value = Me.TextKunde.Value
End With
Unload Me
Dim sh As Object
Dim arr() As Variant
Dim i As Integer
'Filename:="C:Users\BTO\Desktop"
For Each sh In ThisWorkbook.Sheets
If sh.Visible = xlSheetVisible Then
i = i + 1
ReDim Preserve arr(1 To i)
arr(i) = sh.Name
End If
Next sh
Sheets(arr).Select
strDatei = ThisWorkbook.Path & Application.PathSeparator & "Dateiname" & Format(Now, " _
YYYYMMDD hhmmss") & ".PDF"
ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, Filename:=strDatei, Quality:= _
xlQualityStandard, IncludeDocProperties:=True, IgnorePrintAreas:=False, OpenAfterPublish:=True
Exit Sub
Errorhandler:
MsgBox "Bitte schließen Sie vorher das alte PDF Dokument"
Resume Next
End Sub
Danke nochmal für die Antwort
Matthais

Anzeige
AW: Fehler bei PDF Generierung - Laufzeitfehler
26.11.2015 18:13:31
Matthias
Hallo Franz,
kurz zur Info. Es klappt so ganz gut.
Danke für Deine Hilfe
Matthias

AW: Fehler bei PDF Generierung - Laufzeitfehler
26.11.2015 17:06:03
Matthias
wie bekomme ich es eigentlich hin, dass die PDF Datei, den Dateinamen des Excel file automatisch übernimmt?
Gruß
Matthias

AW: Fehler bei PDF Generierung - Laufzeitfehler
27.11.2015 09:49:45
fcs
Hallo Mathias,
wenn du den Dateinamen des PDF, wie folgt festlegst:
     With ThisWorkbook
strDatei = Left(.FullName, InStrRev(.FullName, ".") - 1) & ".PDF"
End With

Gruß
Franz
Anzeige
;
Anzeige
Anzeige

Infobox / Tutorial

Fehler bei der PDF-Generierung in Excel beheben


Schritt-für-Schritt-Anleitung

Um ein PDF-Dokument aus Excel zu generieren, kannst Du folgenden VBA-Code verwenden. Achte darauf, dass Du die richtigen Parameter für die ExportAsFixedFormat-Methode einstellst:

Private Sub CMDweiter_Click()
    ' Prüfung ob Text Vorhanden
    If Me.TextKunde.Value = "" Then
        MsgBox ("Name des Kunden fehlt!")
        Exit Sub
    End If

    ' wird ausgeführt wenn auf Weiter geklickt wird
    With Tabelle5
        .Range("C28").Value = Me.TextKunde.Value
    End With
    Unload Me

    Dim sh As Object
    Dim arr() As Variant
    Dim i As Integer
    For Each sh In ThisWorkbook.Sheets
        If sh.Visible = xlSheetVisible Then
            i = i + 1
            ReDim Preserve arr(1 To i)
            arr(i) = sh.Name
        End If
    Next sh
    Sheets(arr).Select

    ' Definiere den Dateinamen und Speicherort
    Dim strDatei As String
    strDatei = ThisWorkbook.Path & Application.PathSeparator & "Dateiname_" & Format(Now, "YYYYMMDD_HHmmss") & ".PDF"

    ' PDF-Generierung
    ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, Filename:=strDatei, Quality:=xlQualityStandard, _
    IncludeDocProperties:=True, IgnorePrintAreas:=False, OpenAfterPublish:=True
End Sub

Häufige Fehler und Lösungen

  1. Laufzeitfehler -2147018887 (80071779):

    • Dieser Fehler tritt häufig auf, wenn der Zielordner schreibgeschützt ist oder keine Schreibberechtigung besteht. Überprüfe die Berechtigungen des Verzeichnisses.
  2. 8007007b:

    • Achte darauf, dass der angegebene Pfad korrekt ist. Ein falscher oder ungültiger Pfad führt ebenfalls zu diesem Fehler.
  3. PDF wird nicht erstellt:

    • Stelle sicher, dass kein anderes PDF mit demselben Namen geöffnet ist. Benutze IgnorePrintAreas:=True, wenn Du nur einen bestimmten Bereich drucken möchtest.

Alternative Methoden

Wenn die ExportAsFixedFormat-Methode Probleme bereitet, kannst Du auch Folgendes versuchen:

  • Manuelle PDF-Generierung:

    • Speichere die Excel-Datei zunächst und benutze dann die Option „Speichern unter“, um manuell ein PDF zu erstellen.
  • Drucker-Setup:

    • Stelle sicher, dass der PDF-Drucker korrekt installiert ist, und benutze die Druckfunktion ActiveSheet.PrintOut mit entsprechenden Einstellungen.

Praktische Beispiele

Wenn Du den Dateinamen des PDFs automatisch an den Namen der Excel-Datei anpassen möchtest, kannst Du den folgenden Code verwenden:

With ThisWorkbook
    strDatei = Left(.FullName, InStrRev(.FullName, ".") - 1) & ".PDF"
End With

Das sorgt dafür, dass der PDF-Dateiname dem Excel-Dateinamen entspricht.


Tipps für Profis

  • Verwende OpenAfterPublish:=False, wenn Du das PDF nicht sofort nach der Generierung öffnen möchtest.
  • Stelle sicher, dass die Excel-Datei gespeichert ist, bevor Du versuchst, ein PDF zu generieren.
  • Debugging: Nutze das On Error GoTo Errorhandler, um Fehler besser zu behandeln und den Code robuster zu gestalten.

FAQ: Häufige Fragen

1. Wie kann ich sicherstellen, dass das PDF nicht schreibgeschützt ist?
Achte darauf, dass die Datei nicht in einem schreibgeschützten Verzeichnis gespeichert wird. Überprüfe auch die Dateieigenschaften.

2. Was bedeutet IgnorePrintAreas:=True?
Das ist eine Option, die es Dir erlaubt, beim Exportieren die festgelegten Druckbereiche zu ignorieren. Verwende dies, wenn Du den gesamten Arbeitsblattinhalt exportieren möchtest.

3. Warum funktioniert das Makro auf meinem Laptop nicht, aber auf meinem Rechner schon?
Überprüfe die Berechtigungen und den Speicherort der Datei. Unterschiede im Netzwerk oder in den Benutzerrechten können ebenfalls Probleme verursachen.

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