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

Forumthread: pdf drucken, Dateiname und Pfad festlegen (Makro)

pdf drucken, Dateiname und Pfad festlegen (Makro)
18.01.2008 14:28:00
Andi
Hi,
ich habe folgende Frage:
ich möchte ein Sheet als pdf drucken, und im Code den Namen und den Pfad der pdf-Datei festlegen.
Der Makro-Rekorder hat folgendes aufgezeichnet:
Application.ActivePrinter = "Adobe PDF auf Ne03:"
ActiveWindow.SelectedSheets.PrintOut Copies:=1, ActivePrinter:= _
"Adobe PDF auf Ne03:", Collate:=True
Der Teil, in dem ich im Speichern unter Dialog manuell den Namen und den Pfad festgelegt habe, hat er leider nicht aufgezeichnet. Weiß jemand, wie ich das noch in den Code einbauen kann?
Schönen Gruß,
Andi

Anzeige

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

Betreff
Datum
Anwender
Anzeige
AW: pdf drucken, Dateiname und Pfad festlegen (Makro)
18.01.2008 14:49:44
Mirko
mit diesem Code wird das 'Speichern unter'-Fenster angezeigt, die gewählte Datei wird mit Pfad zurückgegeben. Nach der Benutzung wird das Objekt mit 'Nothing' wieder freigegeben...
Dim fd As FileDialog
Set fd = Application.FileDialog(msoFileDialogSaveAs)
Dim vrtSelectedItem As Variant
With fd
If .Show = -1 Then
For Each vrtSelectedItem In .SelectedItems
pfad = vrtSelectedItem 'gewählter Speicherort
Next vrtSelectedItem
Else
'User hat cancel gewählt
End If
End With
Set fd = Nothing

Anzeige
AW: pdf drucken, Dateiname und Pfad festlegen (Makro)
18.01.2008 14:53:02
Andi
Hi,
und wie übergebe ich das ganze dann an den Code, mit dem ich das pdf drucke?
Schönen Gruß,
Andi

AW: pdf drucken, Dateiname und Pfad festlegen (Makro)
18.01.2008 15:17:10
Mirko
evt. so?
ActiveWindow.SelectedSheets.PrintOut Copies:=1, ActivePrinter:= _
"Adobe PDF auf Ne03:", PrintToFile:=True, Collate:=True, PrToFileName:=pfad

Anzeige
AW: pdf drucken, Dateiname und Pfad festlegen (Makro)
18.01.2008 15:25:59
Andi
Hi,
vielen Dank.
Ich werd das testen, sobald ich wieder an einem Rechner mit Acrobat-Vollversion sitze...
Schönes Wochenende,
Andi

AW: pdf drucken, Dateiname und Pfad festlegen (Mak
20.01.2008 18:57:00
Andi
Hi,
leider komme ich damit auch nicht ganz klar...
Ich hab die Frage hier
https://www.herber.de/forum/messages/943595.html
nochmal etwas detaillierter gestellt.
Trotzdem Danke,
Andi
Anzeige

Forumthreads zu verwandten Themen

Anzeige
Anzeige
Anzeige
Anzeige
Anzeige

Infobox / Tutorial

PDF drucken und Dateiname sowie Pfad in Excel festlegen


Schritt-für-Schritt-Anleitung

Um ein Excel-Sheet als PDF zu drucken und dabei den Dateinamen sowie den Pfad festzulegen, kannst du folgenden VBA-Code verwenden. Dieser Code kombiniert die Funktionalität zum Speichern unter mit dem PDF-Drucken.

  1. Öffne Excel und drücke ALT + F11, um den VBA-Editor zu öffnen.

  2. Füge ein neues Modul hinzu: Rechtsklick auf "VBAProject (dein Dokument)" > Einfügen > Modul.

  3. Kopiere und füge den folgenden Code in das Modul:

    Sub PDFDruckenMitDateinamen()
       Dim fd As FileDialog
       Set fd = Application.FileDialog(msoFileDialogSaveAs)
       Dim pfad As String
    
       With fd
           .Title = "Speichern als"
           .Filters.Clear
           .Filters.Add "PDF-Dateien", "*.pdf"
           If .Show = -1 Then
               pfad = .SelectedItems(1) ' gewählter Speicherort
           Else
               MsgBox "Der Vorgang wurde abgebrochen."
               Exit Sub
           End If
       End With
    
       ActiveWindow.SelectedSheets.PrintOut Copies:=1, ActivePrinter:="Adobe PDF auf Ne03:", _
           PrintToFile:=True, Collate:=True, PrToFileName:=pfad
    
       Set fd = Nothing
    End Sub
  4. Schließe den VBA-Editor und kehre zu Excel zurück.

  5. Führe das Makro aus: ALT + F8, wähle PDFDruckenMitDateinamen und klicke auf "Ausführen".

Mit diesem Code kannst du die Funktion „PDF drucken mit Dateinamen“ in Excel effektiv nutzen.


Häufige Fehler und Lösungen

  • Problem: Das 'Speichern unter'-Fenster wird nicht angezeigt.

    • Lösung: Stelle sicher, dass die Datei nicht im geschützten Modus geöffnet ist. Schließe alle unnötigen Fenster und versuche es erneut.
  • Problem: PDF wird ohne Dateinamen gespeichert.

    • Lösung: Überprüfe, ob der PrintToFile-Parameter korrekt gesetzt ist und dass der pfad tatsächlich einen gültigen Dateinamen enthält.

Alternative Methoden

Eine alternative Methode, um PDF-Dateien mit bestimmten Namen zu drucken, wäre die Verwendung der ExportAsFixedFormat-Methode. Hier ein Beispiel:

Sub ExportAlsPDF()
    Dim pfad As String
    pfad = Application.ActiveWorkbook.Path & "\MeinDokument.pdf"
    ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, Filename:=pfad, Quality:=xlQualityStandard
End Sub

Diese Methode erfordert keinen Dialog zum Speichern und kann direkt einen vordefinierten Pfad verwenden.


Praktische Beispiele

Angenommen, du möchtest ein Arbeitsblatt namens "Bericht" als PDF speichern. Dann könntest du den Code entsprechend anpassen:

Sub BerichtAlsPDF()
    Dim pfad As String
    pfad = "C:\DeinPfad\Bericht.pdf"
    Worksheets("Bericht").ExportAsFixedFormat Type:=xlTypePDF, Filename:=pfad, Quality:=xlQualityStandard
End Sub

Mit diesem Ansatz kannst du den PDF-Titel anders als den Dateinamen festlegen, indem du den Inhalt des Arbeitsblattes anpasst.


Tipps für Profis

  • Dateiname anpassen: Du kannst den Dateinamen dynamisch gestalten, indem du z.B. das aktuelle Datum hinzufügst:

    pfad = Application.ActiveWorkbook.Path & "\Bericht_" & Format(Date, "YYYYMMDD") & ".pdf"
  • Automatisierung: Integriere den PDF-Druck in einen größeren Automatisierungsprozess, indem du diesen Code in ein bestehendes Makro einfügst.


FAQ: Häufige Fragen

1. Wie kann ich den Dateipfad für das PDF-Dokument festlegen?
Du kannst den Pfad im Code definieren, z.B. pfad = "C:\DeinPfad\DeinDateiname.pdf".

2. Kann ich einen anderen Druckertreiber verwenden?
Ja, ersetze einfach den Druckernamen in ActivePrinter mit dem Namen des gewünschten Druckers.

3. Was ist, wenn ich den PDF-Namen anders als den Dateinamen haben möchte?
Du kannst den Titel im PDF-Dokument anpassen, indem du die Inhalte des Arbeitsblattes änderst oder einen spezifischen Titel in den PDF-Einstellungen angibst.

4. Funktioniert dieser Code in allen Excel-Versionen?
Der Code sollte in den meisten aktuellen Excel-Versionen funktionieren, insbesondere ab Excel 2010.

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige