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

Forumthread: pdf erstellen ohne pdf-Drucker zu installieren

pdf erstellen ohne pdf-Drucker zu installieren
13.03.2015 09:12:26
Matthias
Hallo,
gibt es über VBA eine Möglichkeit eine Pdf-erstellen zu lassen, ohne das ein entsprechender pdf-Drucker angesteuert wird.
Ich möchte einen Button erstellen, der nicht auf einen Pdf-Drucker zugreift.
Hintergrund ist der, falls die Datei auf einen anderen PC geöffnet wird und dieser pdf-Drucker nicht installiert ist, funktioniert die Funktion nicht.
Super wäre hier auch die Auswahl des Speicherortes und des Speichernamees.
dank.

Anzeige

13
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
für XL2007 bin ich mir nicht sicher ...aber ...
13.03.2015 09:18:50
neopa
Hallo Matthias,
... zumindest ab XL2010 kannst Du die PDF direkt aus Excel mit Speichern unter im Datenformat PDF ausgeben. Vielleicht gibt es dies ja auch schon in XL2007.
Gruß Werner
.. , - ...

AW: pdf erstellen ohne pdf-Drucker zu installieren
13.03.2015 09:20:20
Oberschlumpf
Hi Matthias
Kannst du sicher davon ausgehen, dass auf jedem Computer, auf dem deine Datei gestartet wird, mindestens Office, bzw Excel 2007 installiert ist?
Wenn ja, dann benötigst du keinen "PDF-Drucker", denn ab Office 2007 ist es möglich, die Dateien als PDF-Datei zu speichern....also Speichern Unter auswählen, Dateityp PDF auswählen, speichern.
Wenn du NICHT weißt, ob auf jedem Computer Office 2007 installiert ist, dann funktioniert es ohne installierten PDF-Drucker nicht.
Hilfts?
Ciao
Thorsten

Anzeige
AW: pdf erstellen ohne pdf-Drucker zu installieren
13.03.2015 10:28:06
Matthias
Hallo,
ja davon kann man ausgehen.
Wie kann ich dann den pdf-befehl auswählen per VBA?
Ich möchte nicht den Umweg über Datei/Drucken gehen.
Besten Dank.

AW: pdf erstellen ohne pdf-Drucker zu installieren
13.03.2015 10:32:00
mumpel
Hallo!
Stichwort: ExportAsFixedFormat
Gruß, René

AW: pdf erstellen ohne pdf-Drucker zu installieren
13.03.2015 10:41:39
Matthias
Hallo,
danke für den Tipp.
Ich habe mich mal schlauch gemacht mit nachfolgend Code.
Sub PDF_Print_Sheet()
'Modifiziert
Dim wks As Worksheet
For Each wks In ActiveWindow.SelectedSheets
wks.ExportAsFixedFormat Type:=xlTypePDF, Filename:= _
"C:\Users\" & Environ("Username") & "\Desktop\" & ActiveSheet.Name & ".pdf", Quality:= _
xlQualityStandard, _
IncludeDocProperties:=True, IgnorePrintAreas:=False, OpenAfterPublish:= _
True
Next wks
End Sub
Leider bringt er mir immer innen Fehler (400).
Kann mir jemand weiterhelfen?
Ich komme hier nicht weiter :(

Anzeige
AW: pdf erstellen ohne pdf-Drucker zu installieren
13.03.2015 11:06:56
mumpel
"ActiveSheet.Name" bringt Dir in diesem Fall nichts, da Du nicht mehrere Dateien unter dem selben Namen speichern kannst. Was genau möchtest Du erreichen?

AW: pdf erstellen ohne pdf-Drucker zu installieren
13.03.2015 11:18:58
Matthias
Hallo,
ich möchte das aktive Tabellenblatt als Pdf generien.
Die Pdf soll genauso heissen wie mein Tabellenblatt.
Schön wäre noch den Speicherort noch varibalen ausgeben zu können.
Falls nicht ein sollte die Datei am Desktop gespeichert werden.
Wobei der Befehl auch auf anderen PCS mit anderen Nutzern funktionieren soll.
Gruss

Anzeige
AW: pdf erstellen ohne pdf-Drucker zu installieren
13.03.2015 11:58:35
fcs
Hallo Mathias,
zum Speichern auf dem Desktop muss du dein Makro wie folgt anpassen.
Mit Auswahldialog wird der Code etwas länger.
In der Textdatei sind Makros für verschiedene Varianten
- Gesamte Arbeitsmappe in eine PDF-Datei
- einzelne Blätter in eine PDF-Datei
- gruppierte Blätter einzeln in PDF-Dateien
- gruppierte Blätter in eine Datei
- Liste von Blättern (im Code festvorgegeben) in eine PDF-Datei.
https://www.herber.de/bbs/user/96345.txt
Gruß
Franz
Sub PDF_Print_Sheet()
'Modifiziert - Ausgabe der selektierten Blätter in jeweils eine separate PDF-Datei
Dim wks As Object
For Each wks In ActiveWindow.SelectedSheets
wks.Select
wks.ExportAsFixedFormat Type:=xlTypePDF, Filename:= _
"C:\Users\" & Environ("Username") & "\Desktop\" & wks.Name & ".pdf", _
Quality:=xlQualityStandard, IncludeDocProperties:=True, _
IgnorePrintAreas:=False, OpenAfterPublish:=True
Next wks
End Sub
Sub PDF_Print_GroupedSheets()
'Modifiziert - Ausgabe der selektierten Blätter in eine PDF-Datei
Dim wkb As Workbook
Set wkb = ActiveWorkbook
ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, Filename:= _
"C:\Users\" & Environ("Username") & "\Desktop\" _
& Left(wkb.Name, InStrRev(wkb.Name, ".") - 1) & ".pdf", _
Quality:=xlQualityStandard, IncludeDocProperties:=True, _
IgnorePrintAreas:=False, OpenAfterPublish:=True
End Sub

Anzeige
AW: pdf erstellen ohne pdf-Drucker zu installieren
16.03.2015 09:38:48
Matthias
Hallo vielen Dank.
Jedoch funktionert es nicht.
Ich habe den Code
Sub PDF_Print_Sheet()
'Modifiziert - Ausgabe der selektierten Blätter in jeweils eine separate PDF-Datei
Dim wks As Object
For Each wks In ActiveWindow.SelectedSheets
wks.Select
wks.ExportAsFixedFormat Type:=xlTypePDF, Filename:= _
"C:\Users\" & Environ("Username") & "\Desktop\" & wks.Name & ".pdf", _
Quality:=xlQualityStandard, IncludeDocProperties:=True, _
IgnorePrintAreas:=False, OpenAfterPublish:=True
Next wks
End Sub
in meine Excelmappe eingefügt. Es wurde keine Modul oder Formular verwendet.
Ich habe eine Schaltfläche generiert und das Makro zugewiesen.
Nun kommt der Fehler.
400
Was habe ich falsch gemacht?

Anzeige
AW: pdf erstellen ohne pdf-Drucker zu installieren
16.03.2015 10:16:11
fcs
Hallo Mathias,
ich habe keine Ahnung was du falsch gemacht hast, denn der Blick durch meine Kristallkugel reicht nicht so weit.
Ich habe den Code getestet, wobei er in ein allgemeines Modul der Datei eingebaut war.
Ich hab es jetzt mal probiert mit Makro unter einem Tabellenblatt-Modul und einer Schaltfläche aus den Formularsteuerelementen. Auch das funktioniert. Das Tabellenblatt mit der Schaltfläche muss dann aber auch bei jeder PDF-Ausgabe mit selektiert werden, idealer Weise als 1. Blatt.
Produziert denn der Ausdruck "C:\Users\" & Environ("Username") & "\Desktop\" ein gültiges Verzeichnis?
Der Fehler 400 wird generiert wenn das Verzeichnis ungültig ist.
Du musst diesen Ausdruck so anpassen, dass er ein gültiges Verzeichnis berechnet.
Außerdem darf im PDF-Viewer keine Datei geöffnet sein, die einen der automatisch generierten Dateinamen hat.
Gruß
Franz

Anzeige
AW: pdf erstellen ohne pdf-Drucker zu installieren
16.03.2015 11:51:24
matthias
Hallo,
ich habe den Fehler gefunden. Jetzt geht es, wenn keine Datei schon vorhanden ist.
Kann man den Code noch ergänzen mit der Info, dass z.b die Datei schon vorhanden ist und nicht der Fehler angezeigt wird?
Gruss

AW: pdf erstellen ohne pdf-Drucker zu installieren
16.03.2015 12:45:40
fcs
Hallo Mathias,
ich hab jetzt mal Prüfungen des Verzeichnisses und des Dateinamens eingebaut mit entsprechenden Meldungen und Optionen für die Fortsetzung.
Gruß
Franz
Sub PDF_Print_Sheet()
'Modifiziert - Ausgabe der selektierten Blätter in jeweils eine separate PDF-Datei
Dim wks As Object
Dim strPfad As String, strName As String
strPfad = "C:\Users\" & Environ("Username") & "\Desktop"
'Prüfunmg ob Verzeichnis vorhanden
If Dir(strPfad, vbDirectory) = "" Then
MsgBox "Das Verzeichnis """ & strPfad & """ gibt es nicht!", _
vbOKOnly, "PDF speichern"
Else
strPfad = strPfad & "\"
For Each wks In ActiveWindow.SelectedSheets
strName = wks.Name & ".pdf"
'prüfen ob Dateiname im Verzeichnis schon vorhanden
If Dir(strPfad & strName)  "" Then
Select Case MsgBox("Die Datei """ & strName _
& """ existiert schon im Verzeichnis" & vbLf & strPfad _
& vbLf & "Datei überschreiben?", _
vbQuestion + vbYesNoCancel + vbDefaultButton2, "PDF speichern")
Case vbYes
'überschreibt vorhandene PDF-Datei gleichen Namens
Case vbNo
'überschreibt nicht vorhandene PDF-Datei gleichen Namens
GoTo next_wks
Case vbCancel
'bricht Speichern PDF ab
Exit For
End Select
End If
wks.Select
wks.ExportAsFixedFormat Type:=xlTypePDF, Filename:=strPfad & strName, _
Quality:=xlQualityStandard, IncludeDocProperties:=True, _
IgnorePrintAreas:=False, OpenAfterPublish:=True
next_wks:
Next wks
End If
End Sub

Anzeige
AW: pdf erstellen ohne pdf-Drucker zu installieren
16.03.2015 14:11:07
matthias
Vielen Vielen Dank.
Perfekt :)
;

Forumthreads zu verwandten Themen

Anzeige
Anzeige
Anzeige
Anzeige
Entdecke relevante Threads

Schau dir verwandte Threads basierend auf dem aktuellen Thema an

Alle relevanten Threads mit Inhaltsvorschau entdecken
Anzeige
Anzeige

Infobox / Tutorial

PDF aus Excel erstellen ohne Druckerinstallation


Schritt-für-Schritt-Anleitung

  1. Öffne Excel und wähle das Tabellenblatt aus, das Du als PDF speichern möchtest.
  2. Gehe zu Entwicklertools und klicke auf Visual Basic, um den VBA-Editor zu öffnen. (Falls die Entwicklertools nicht sichtbar sind, aktiviere sie über die Excel-Optionen.)
  3. Erstelle ein neues Modul, indem Du im Menü Einfügen auf Modul klickst.
  4. Füge den folgenden VBA-Code ein:
Sub PDF_Print_Sheet()
    Dim wks As Worksheet
    Dim strPfad As String, strName As String
    strPfad = "C:\Users\" & Environ("Username") & "\Desktop" ' Speicherort

    ' Überprüfen, ob das Verzeichnis existiert
    If Dir(strPfad, vbDirectory) = "" Then
        MsgBox "Das Verzeichnis """ & strPfad & """ gibt es nicht!", vbOKOnly, "PDF speichern"
        Exit Sub
    End If

    strPfad = strPfad & "\"
    For Each wks In ActiveWindow.SelectedSheets
        strName = wks.Name & ".pdf" ' Dateiname
        ' Überprüfen, ob die Datei bereits existiert
        If Dir(strPfad & strName) <> "" Then
            Select Case MsgBox("Die Datei """ & strName & """ existiert bereits. Überschreiben?", vbYesNoCancel)
                Case vbYes
                    ' Überschreiben
                Case vbNo
                    GoTo next_wks
                Case vbCancel
                    Exit For
            End Select
        End If
        wks.ExportAsFixedFormat Type:=xlTypePDF, Filename:=strPfad & strName, _
            Quality:=xlQualityStandard, IncludeDocProperties:=True, _
            IgnorePrintAreas:=False, OpenAfterPublish:=True
next_wks:
    Next wks
End Sub
  1. Schließe den VBA-Editor und wechsle zurück zu Excel.
  2. Erstelle eine Schaltfläche über Entwicklertools > Einfügen und weise das Makro PDF_Print_Sheet zu.
  3. Klicke auf die Schaltfläche, um die PDF-Datei zu erstellen.

Häufige Fehler und Lösungen

  • Fehler 400: Dieser Fehler kann auftreten, wenn das Verzeichnis ungültig ist. Stelle sicher, dass der Pfad korrekt ist und dass das Verzeichnis existiert.
  • PDF-Datei existiert bereits: Der Code fragt nach, ob die existierende Datei überschrieben werden soll. Dies kann angepasst werden, wenn Du eine andere Vorgehensweise bevorzugst.
  • Excel als PDF speichern funktioniert nicht: Prüfe, ob Du die korrekte Excel-Version (ab Excel 2007) verwendest.

Alternative Methoden

  • Du kannst auch die Speichern unter Funktion nutzen, um die Datei als PDF zu speichern:
    1. Klicke auf Datei > Speichern unter.
    2. Wähle den Dateityp PDF aus.
  • Verwende einen PDF-Drucker, wenn das direkte Speichern als PDF nicht funktioniert. Programme wie Adobe PDF oder PDFCreator können hilfreich sein.

Praktische Beispiele

Um die PDF-Datei aus einer Excel-Tabelle zu erstellen, kannst Du folgendes Beispiel verwenden:

Sub BeispielPDF()
    Dim ws As Worksheet
    Set ws = ThisWorkbook.Sheets("DeineTabelle") ' Name des Tabellenblatts
    ws.ExportAsFixedFormat Type:=xlTypePDF, Filename:="C:\Pfad\zu\deiner\Datei.pdf", Quality:=xlQualityStandard
End Sub

Ersetze DeineTabelle mit dem Namen des gewünschten Blatts und passe den Pfad entsprechend an.


Tipps für Profis

  • Dynamische Speicherorte: Verwende Environ("Username"), um den aktuellen Benutzerordner dynamisch zu erfassen.
  • Fehlerbehandlung: Implementiere eine Fehlerbehandlung im Code, um unerwartete Probleme zu vermeiden.
  • Schnellzugriff: Füge die Schaltfläche zum Schnellzugriffsmenü hinzu, um den Zugriff zu erleichtern.

FAQ: Häufige Fragen

1. Wie kann ich eine PDF aus Excel ohne installierten PDF-Drucker erstellen? Ab Excel 2007 ist es möglich, PDFs direkt zu speichern, ohne einen PDF-Drucker zu benötigen. Nutze den VBA-Code, um dies automatisiert zu tun.

2. Kann ich aus Excel eine PDF-Datei erstellen, die auf jedem Computer funktioniert? Ja, wenn der VBA-Code korrekt implementiert ist, sollte die PDF-Datei auf jedem PC ohne zusätzliche Software nutzbar sein, solange Excel installiert ist.

3. Was tun, wenn der Adobe PDF Drucker fehlt? Falls der Adobe PDF Drucker fehlt, kannst Du alternative PDF-Drucker wie PDFCreator oder die integrierte Funktion in Excel verwenden, um PDFs zu erstellen.

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