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

Forumthread: per VBA PDF-Dateien ansprechen und speichern

per VBA PDF-Dateien ansprechen und speichern
23.07.2014 09:55:51
Peter
Liebe Community,
ich habe folgende Herausforderung:
Ich möchte die vorliegende Excel_Datei als PDF abspeichern und dabei an den ausgewählten (NICHT vorgegebenen) Speicherort Datenblätter in PDF anhängen. Bedeutet, nach Ablauf der Prozedur ist die Excel als PDF mit den Datenblättern am gewünschten und vom Anwender ausgewählten Speicherort abgespreichert. Am besten wird an dem gewählten Speicherort ein Ordner erstellt, in den alle PDFs kommen.
Bis zum FileDialog komme ich, danach gehen mir die Kenntnisse aus und google kann den speziellen Fall auch nicht abdecken.
Als Ideenansatz könnte vielleicht folgendes am einfachsten sein:
als erstes werden die Dateien, die relevant sind, selektiert und in den Zwischenspeicher genommen. Anschließen kommt das Dialog-Fenster mit "speichern-unter" Aufforderung. Der User bestimmt den Speicherort und alle PDF werden dort gespeichert.
Ich bedanke mich schonmal im Vorraus,
besten Gruß
Peter Peters

Anzeige

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

Betreff
Datum
Anwender
Anzeige
AW: per VBA PDF-Dateien ansprechen und speichern
23.07.2014 12:39:08
mumpel
Hallo!
So ganz verständlich ist das nicht beschrieben. Möchtest Du eine neue PDF-Datei erstellen? Oder tatsächlich an eine vorhanden PDF-Datei anhängen, also die Tabellen einer vorhandene PDF-Datei hinzufügen? Und/oder willst Du aus mehreren Exceldateien Tabellen auswählen und in eine PDF-Datei packen?
Gruß, René

Anzeige
AW: per VBA PDF-Dateien ansprechen und speichern
23.07.2014 12:47:03
Peter
Hallo René,
Ich möchte sowohl eine PDF aus der Excel erstellen (den Code habe ich aber schon), als auch schon vorhandene PDFs(Datenblätter) an die PDF anhängen.
Ein Beispiel:
Aus dem Excelsheet erstelle ich eine PDF 1, diese PDF 1 speichert der User per Dialog-Fenster "speichern unter" ab. Mit diesem Abspeichern sollen die Datenblätter 2,3,4... aus einem festgelegten Speicherort kopiert und zum Speicherort von PDF 1 hinzugefügt werden.
Soweit der erste Teil. Hilft das?
Besten Gruß
Peter Peters

Anzeige
AW: per VBA PDF-Dateien ansprechen und speichern
23.07.2014 12:52:04
mumpel
Mit Bordmitteln keine Chance. Mit dem kostenlosen PDF-Creator könnte das funktionieren. Aber den hat nicht jeder installiert. Und der Programmieraufwand dafür ist hoch.

AW: per VBA PDF-Dateien ansprechen und speichern
23.07.2014 12:58:39
Peter
Hi,
Ich hab mir da was zusammengesucht, es funktioniert noch nicht aufgrund einer Fehlermeldung:
Dim strSourcePDF, strDestinationPDF As String
strSourcePDF = "D:\dateipfad\Datei.pdf" 'Quelle
strDestinationPDF = "D:\Dateipfad\Destination" 'Ziel
FileSystemObject.CopyFile strSourcePDF, strDestinationPDF
Die Fehlermeldung dazu lautet "Fehler 424, Objekt erforderlich."
Ist mit diesem Code da was zu machen?
Besten Gruß
Peter Peters

Anzeige
AW: per VBA PDF-Dateien ansprechen und speichern
23.07.2014 13:15:39
mumpel
Ach so. Du willst nur Dateien kopieren. Das ist kein Problem.
Du musst aber erst das Objekt erstellen bevor Du darauf zugreifen kannst.
Sub CopyPdfFile()
Dim FSO As Object


Set FSO = CreateObject("Scripting.FileSystemObject")
    FSO.CopyFile "C:\Test.pdf", Environ("USERPROFILE") & "\Desktop\"
    
End Sub


VBA/HTML - CodeConverter für Office-Foren
AddIn für Excel/Word 2000-2010 - komplett in VBA geschrieben von Lukas Mosimann
Projektbetreuung durch mumpel



Code erstellt und getestet in Office 14

Anzeige
AW: per VBA PDF-Dateien ansprechen und speichern
23.07.2014 13:28:50
Peter
Hi,
Ich versuche gerade, den Code zu verstehen.
Was genau muss ich in "Environ ("Userprofil")" und in "\Desktop\" einfügen?
Ist der letzte Teil die Destination des Kopiervorgangs? Da sitz ich noch auf dem Schlau.
Besten Dank
Peter Peters

AW: per VBA PDF-Dateien ansprechen und speichern
23.07.2014 13:44:40
mumpel
" Environ("USERPROFILE") & "\Desktop\" " speichert automatisch auf dem Desktop, unabhängig vom angemeldeten Anwender. Den Desktop nutze ich gerne da er leicht zugänglich ist. Du kannst natürlich jeden beliebigen Pfad angeben, auch den aus Deinem Beispiel.

Anzeige
AW: per VBA PDF-Dateien ansprechen und speichern
23.07.2014 13:56:38
Peter
Hi,
Vielen Dank, das funktioniert soweit!
Für eine andere Frage mach' ich dann mal einen neuen Thread auf.
Besten Gruß
Peter Peters
;

Forumthreads zu verwandten Themen

Anzeige
Anzeige
Anzeige
Anzeige
Anzeige

Infobox / Tutorial

PDF-Dateien mit VBA in Excel speichern und verwalten


Schritt-für-Schritt-Anleitung

Um PDF-Dateien mit VBA in Excel zu speichern, kannst Du die folgenden Schritte befolgen:

  1. VBA-Editor öffnen: Drücke ALT + F11, um den VBA-Editor zu öffnen.

  2. Modul hinzufügen: Klicke mit der rechten Maustaste auf "VBAProject (DeineDatei.xlsm)" und wähle Einfügen > Modul.

  3. Code einfügen: Kopiere den folgenden Code in das Modul:

    Sub SaveAsPDF()
        Dim ws As Worksheet
        Dim FilePath As String
        Dim FSO As Object
    
        ' Speicherort auswählen
        With Application.FileDialog(msoFileDialogFolderPicker)
            .Title = "Wählen Sie den Speicherort"
            If .Show = -1 Then
                FilePath = .SelectedItems(1) & "\"
            Else
                Exit Sub
            End If
        End With
    
        ' PDFs erstellen und speichern
        Set FSO = CreateObject("Scripting.FileSystemObject")
        For Each ws In ThisWorkbook.Worksheets
            ws.ExportAsFixedFormat Type:=xlTypePDF, Filename:=FilePath & ws.Name & ".pdf"
        Next ws
    End Sub
  4. Makro ausführen: Schließe den VBA-Editor und gehe zurück zu Excel. Drücke ALT + F8, wähle SaveAsPDF und klicke auf Ausführen.

Die Excel-Datei wird nun als PDF an dem vom Benutzer gewählten Speicherort gespeichert.


Häufige Fehler und Lösungen

  • Fehler 424: Objekt erforderlich: Dieser Fehler tritt auf, wenn Du versuchst, auf ein Objekt zuzugreifen, das nicht richtig erstellt wurde. Stelle sicher, dass Du das FileSystemObject wie im Beispiel initialisiert hast.

  • Speichern unter Dialog nicht angezeigt: Wenn der Dialog nicht erscheint, überprüfe, ob die FileDialog-Eigenschaft korrekt verwendet wird und ob Du die richtigen Berechtigungen hast.


Alternative Methoden

  • PDF-Creator Verwendung: Falls Du PDFs aus mehreren Dateien erstellen oder bestehende PDFs kombinieren möchtest, könnte der Einsatz des kostenlosen PDF-Creators eine Alternative sein. Hierbei ist jedoch zu beachten, dass der Benutzer diese Software installieren muss.

  • Export als HTML: Du kannst auch Excel-Daten als HTML speichern, wenn Du die PDFs nicht benötigst, indem Du ws.SaveAs FilePath & ws.Name & ".html", xlHTML verwendest.


Praktische Beispiele

Hier ist ein einfaches Beispiel, wie Du eine Excel-Datei als PDF speichern und dabei auch andere PDFs in einen Ordner kopieren kannst:

Sub SaveAndCopyPDFs()
    Dim strSourcePDF As String
    Dim strDestinationPDF As String
    Dim FSO As Object

    ' PDF speichern
    Call SaveAsPDF

    ' PDFs kopieren
    strSourcePDF = "C:\DeinPfad\*.pdf" ' Quelle
    strDestinationPDF = Environ("USERPROFILE") & "\Desktop\PDFs\" ' Ziel

    Set FSO = CreateObject("Scripting.FileSystemObject")
    FSO.CopyFile strSourcePDF, strDestinationPDF
End Sub

Tipps für Profis

  • Automatisierung: Nutze Schleifen, um mehrere Arbeitsblätter als PDFs zu speichern, oder um mehrere PDF-Dateien in einen neuen Ordner zu kopieren.

  • Benutzerdefinierte Speicherorte: Erstelle eine Benutzeroberfläche, die es dem Benutzer ermöglicht, benutzerdefinierte Speicherorte für die PDFs festzulegen.

  • Fehlerbehandlung: Implementiere eine Fehlerbehandlungsroutine, um potenzielle Probleme beim Speichern oder Kopieren von Dateien abzufangen.


FAQ: Häufige Fragen

1. Wie speichere ich eine Excel-Datei als PDF?
Du kannst die Methode ExportAsFixedFormat verwenden, um das aktive Arbeitsblatt als PDF zu speichern.

2. Kann ich mehrere PDFs in einer PDF-Datei zusammenfassen?
Mit den Bordmitteln von Excel ist dies nicht direkt möglich. Du kannst jedoch externe Tools wie den PDF-Creator verwenden.

3. Wo werden die PDFs gespeichert?
Die PDFs werden an dem Ort gespeichert, den der Benutzer im Speichern-unter-Diaglog auswählt, oder in einem festgelegten Ordner wie dem Desktop, wenn Du dies im Code festlegst.

4. Wie kann ich den Speicherort für die PDFs ändern?
Du kannst den Speicherort im Code anpassen, indem Du die Variable FilePath entsprechend änderst.

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige