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

Forumthread: VBA Speichern in PDF Dateiname aus Zelle

VBA Speichern in PDF Dateiname aus Zelle
18.06.2022 22:08:26
David
Hallo zusammen,
ich habe ein Problem mit meiner VBA Formel. Ich möchte die Datei in PDF Speichern mit Dateinamen aus Zell inhalt.
Leider speichert er mir das nicht mit dem Zell inhalt. Vielleicht kann mir da ja mal jemand auf die Sprünge helfen woran das liegt. Hier mein Code

Sub speichern()
Const Path = "C:\Users\"
Dim filename As String
fielname = Path & Range("N3") & ".pdf"
Range("A1:C24").ExportAsFixedFormat Type:=xlTypePDF, filename:= _
DateiName, Quality:=xlQualityStandard, _
IncludeDocProperties:=True, IgnorePrintAreas:=False, OpenAfterPublish:= _
True
End Sub
Danke schon mal.
MfG
Anzeige

8
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: VBA Speichern in PDF Dateiname aus Zelle
18.06.2022 22:16:54
Oberschlumpf
Hi David,
a) änder diesen Code...

Dim filename As String
fielname = Path & Range("N3") & ".pdf"
...um in...

Dim DateiName As String
DateiName = Path & Range("N3") & ".pdf"
...damit auch der ...ExportAsFixedFormat...Befehl angewendet werden kann
b) angenommen in Zelle "N3" steht "blubb"...
...dann wäre Speicherort = immer noch nur "C:\Users\" und Dateiname wäre "blubb.pdf" - es wird also versucht, direkt im Verzeichnis "C:\Users\" eine Datei zu speichern.
b1) ich weiß gerade nicht, ob der Windows-(Be)nutzer überhaupt die Berechtigung hat, direkt in "C:\Users" speichern zu dürfen
b2) fehlt also zu deinem ...
Const Path = "C:\Users\"
...nicht noch "Username\" ?
konnte ich helfen?
Ciao
Thorsten
Anzeige
AW: VBA Speichern in PDF Dateiname aus Zelle
19.06.2022 08:15:36
Anton
Servus, um Flüchtigkeitsfehler mit Variablenamen zu reduzieren, würde ich dir diese Anweisung empfehlen, die man ganz oben in jedes Modul setzt:

option explicit
Man kann diese auch in den VBA-Editor-Einstellungen als Standard definieren, damit sie bei jedem neu angelegten Modul automatisch platziert wird.
Diese Anweisung bewirkt, dass jede Variable, die man im Code verwendet, auch explizit deklarieren muss. So würde dann beim Starten deines Programms ein Fehler kommen, dass die Variable filename nicht bekannt ist.
Das hat uns mal unser Prof in „Programmieren 1“ eingetrichtert. Das macht zwar mehr Arbeit, macht aber den Code in jedem Fall stabiler und fehlerfreier
Viele Grüße
Anton
Anzeige
AW: VBA Speichern in PDF Dateiname aus Zelle
19.06.2022 10:16:24
David
Danke Anton habe es gleich angewendet. An solche dinge denkt man meistens gar nicht.
Es funktioniert soweit nur das er eben nicht selbstständig speichert, bzw. das Fenster für Speichern unter aufgeht ohne Dateiname. Wenn das jetzt noch selbständig funktioniert dann bin ich zufrieden :-)
Code schaut jetzt so aus:
Option Explicit

Sub speichern()
Const Path = "C:\Users\VCDS\Documents\Rechnungen\Rechnungen PDF\"
Dim Dateiname As String
Dateiname = Path & Range("N3") & ".pdf"
Range("A1:C24").ExportAsFixedFormat Type:=xlTypePDF, filename:= _
Dateiname, Quality:=xlQualityStandard, _
IncludeDocProperties:=True, IgnorePrintAreas:=False, OpenAfterPublish:= _
True
End Sub
Danke
Anzeige
AW: VBA Speichern in PDF Dateiname aus Zelle
19.06.2022 10:07:55
David
Hy danke für den Tip. Funktioniert soweit nur eben das speichern unter dem Dateinamen geht nicht.
Ja das Verzeichnis ist natürlich nicht C:\Users\ das wird noch abgeändert. Also wenn ich den Code ausführe öffnet sich das Speichern Fenster aber ohne Dateiname. Das ist dann leer und ich muss es von Hand eingeben. Eigentlich sollte doch da der Inhalt von Zelle N3 stehen oder?
Anzeige
AW: VBA Speichern in PDF Dateiname aus Zelle
19.06.2022 10:56:30
Oberschlumpf
Hi,
dann zeig mal bitte per Upload eine Bsp-Datei, die auch Bsp-Daten in den richtigen Zellen enthält.
Ciao
Thorsten
AW: VBA Speichern in PDF Dateiname aus Zelle
19.06.2022 13:33:07
David
Funktioniert perfekt. Vielen Dank. Ist ja ein relativ simpler Code.
Danke dir.

Forumthreads zu verwandten Themen

Anzeige
Anzeige
Anzeige
Anzeige

Infobox / Tutorial

VBA Speichern in PDF mit Dateiname aus Zelle


Schritt-für-Schritt-Anleitung

Um eine Excel-Datei mithilfe von VBA als PDF zu speichern und den Dateinamen aus einer Zelle zu übernehmen, folge diesen Schritten:

  1. Öffne den VBA-Editor:

    • Drücke ALT + F11, um den VBA-Editor zu öffnen.
  2. Füge ein neues Modul hinzu:

    • Klicke mit der rechten Maustaste auf "VBAProject (DeinWorkbookName)" und wähle "Modul".
  3. Füge den folgenden VBA-Code ein:

    Sub speichern()
       Const Path = "C:\Users\VCDS\Documents\Rechnungen\Rechnungen PDF\"
       Dim Dateiname As String
       Dateiname = Path & Range("N3").Value & ".pdf"
       Range("A1:C24").ExportAsFixedFormat Type:=xlTypePDF, filename:= _
           Dateiname, Quality:=xlQualityStandard, _
           IncludeDocProperties:=True, IgnorePrintAreas:=False, OpenAfterPublish:=True
    End Sub
  4. Anpassungen vornehmen:

    • Stelle sicher, dass der Pfad (Path) auf den gewünschten Speicherort zeigt.
    • Überprüfe, ob in Zelle N3 ein gültiger Dateiname steht.
  5. Führe das Makro aus:

    • Drücke F5, um das Makro auszuführen und die Datei als PDF zu speichern.

Häufige Fehler und Lösungen

  • Fehler: Das Speichern unter öffnet sich ohne Dateinamen:

    • Überprüfe, ob die Zelle N3 tatsächlich einen Wert enthält. Wenn die Zelle leer ist, wird kein Dateiname generiert.
  • Fehler: Berechtigungsprobleme beim Speichern:

    • Stelle sicher, dass Du die erforderlichen Berechtigungen für den angegebenen Speicherort hast. Es kann hilfreich sein, den Pfad auf einen Ordner zu ändern, in dem Du volle Rechte hast.

Alternative Methoden

  • Excel Makro zur Erstellung von PDFs: Du kannst auch die SaveAs Methode verwenden, um eine Arbeitsmappe direkt als PDF zu speichern, aber der Dateiname muss manuell eingegeben werden.

  • Verwendung von Add-Ins: Es gibt viele Add-Ins und Tools, die speziell für das Speichern von Excel-Daten als PDF optimiert sind, wenn Du keine VBA-Lösung verwenden möchtest.


Praktische Beispiele

Hier ist ein Beispiel für einen typischen Anwendungsfall:

  1. In Zelle N3 steht der Name "Rechnung_001".
  2. Der VBA-Code speichert den Bereich von A1 bis C24 als "Rechnung_001.pdf" im angegebenen Pfad.

Wenn Du den Code anpasst, um andere Zellinhalte zu verwenden, wird der PDF-Dateiname entsprechend geändert.


Tipps für Profis

  • Option Explicit:

    • Füge Option Explicit ganz oben in deinem Modul hinzu, um sicherzustellen, dass alle Variablen deklariert werden. Dies hilft, Flüchtigkeitsfehler zu vermeiden.
  • Fehlerbehandlung:

    • Implementiere eine einfache Fehlerbehandlung in deinem Code, um sicherzustellen, dass Dein Makro nicht bei einem Fehler abstürzt.
On Error GoTo Fehlerbehandlung
' Dein Code hier
Exit Sub

Fehlerbehandlung:
MsgBox "Ein Fehler ist aufgetreten: " & Err.Description

FAQ: Häufige Fragen

1. Wie kann ich das PDF im Hintergrund speichern, ohne das Fenster "Speichern unter" zu öffnen? Um dies zu erreichen, musst Du sicherstellen, dass der Dateiname korrekt gesetzt ist und dass der Pfad existiert. Das aktuelle Makro sollte dies bereits tun, sofern N3 einen Wert hat.

2. Welche Excel-Version benötige ich für die Verwendung von VBA? VBA ist in den meisten Microsoft Excel-Versionen verfügbar, einschließlich Excel 2010, 2013, 2016, 2019 und Microsoft 365.

3. Kann ich auch andere Bereiche als PDF speichern? Ja, ändere einfach den Bereich in der ExportAsFixedFormat Methode, um andere Zellen oder Bereiche zu speichern.

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige