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

Forumthread: PDF öffnen, befüllen, speichern unter

PDF öffnen, befüllen, speichern unter
04.10.2022 12:01:03
Michaela
Hallo Leute,
folgende Situation, anhand eines stark vereinfachten Beispiels:
3 Dokumente:
1. Excel Sheet mit Daten ("BasisExcel")
2. PDF-Formular ("BasisPDF")
3. Excel Sheet welches nur einen Makro-Button enthält ("Makro")
Das Makro soll folgendes machen:
- Öffne das Excel-Sheet "BasisExcel"
- Öffne das PDF-Formular "BasisPDF"
- Schreibe die Daten aus Feld B2 in das Feld namens "Eintrag" in das PDF Formular
- Speichere (und schließe) das so befüllte PDF-Formular unter dem Dateinamen ab, der in Feld B3 steht
- Schließe das "ursrüngliche" PDF-Formular ohne Änderungen
Mit dem folgenden Code funktioniert es bis zum ausfüllen - nur das speichern fehlt. Hat jemand eine Idee, wie ich dem Makro das beibringen kann?
LG,
Michaela

Sub BasisPDF_befuellen_und_separat_speichern()
Dim AcroApp As Object
Dim AvDoc As Object
Dim Datei As String
Dim Name As String
Dim BasisPDF As Object
Set AcroApp = CreateObject("AcroExch.App")
Set AvDoc = CreateObject("AcroExch.AVDoc")
Datei = "C:\BasisPDF.pdf"
If AvDoc.Open(Datei, Name) Then
AcroApp.Show
Set BasisPDF = AvDoc.GetPDDoc().GetJSObject
Workbooks.Open "C:\BasisExcel.xlsx"
BasisPDF.getField("Eintrag").Value = CStr(ActiveSheet.Range("B2").Value)
' => hier fehlt jetzt der code
End If
Workbooks("BasisExcel.xlsx").Close
End Sub
Anzeige

1
Beitrag zum Forumthread
Beitrag zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: PDF öffnen, befüllen, speichern unter
04.10.2022 13:39:37
snb
Vielleicht ?

Sub M_snb()
With GetObject("C:\BasisExcel.xlsx")
c00 = .Sheets(1).Cells(2, 2)
.Close 0
End With
With CreateObject("AcroExch.AVDoc").Open("C:\BasisPDF.pdf")
.GetPDDoc.GetJSObject.getField("Eintrag").Value = c00
.Save
.Close
End With
End Sub

Anzeige

Forumthreads zu verwandten Themen

Anzeige
Anzeige
Anzeige
Anzeige

Infobox / Tutorial

PDF-Formular mit Excel-Daten füllen und speichern


Schritt-für-Schritt-Anleitung

Um ein PDF-Formular mit Excel-Daten zu füllen und anschließend zu speichern, kannst Du den folgenden VBA-Code verwenden. Dieser Code öffnet eine Excel-Datei, befüllt ein PDF-Formular und speichert es unter einem neuen Namen.

  1. Excel-Daten vorbereiten: Stelle sicher, dass Dein Excel-Dokument ("BasisExcel.xlsx") die benötigten Daten enthält.
  2. PDF-Formular: Dein PDF-Formular ("BasisPDF.pdf") sollte ein Feld mit dem Namen "Eintrag" haben, welches Du befüllen möchtest.
  3. Makro erstellen:
    • Öffne die Excel-Datei, die den Makro-Button enthält ("Makro").
    • Gehe zu Entwicklertools > Visual Basic und füge ein neues Modul hinzu.
    • Kopiere und füge den folgenden VBA-Code ein:
Sub BasisPDF_befuellen_und_separat_speichern()
    Dim AcroApp As Object
    Dim AvDoc As Object
    Dim Datei As String
    Dim Name As String
    Dim BasisPDF As Object
    Set AcroApp = CreateObject("AcroExch.App")
    Set AvDoc = CreateObject("AcroExch.AVDoc")
    Datei = "C:\BasisPDF.pdf"
    If AvDoc.Open(Datei, Name) Then
        AcroApp.Show
        Set BasisPDF = AvDoc.GetPDDoc().GetJSObject
        Workbooks.Open "C:\BasisExcel.xlsx"
        BasisPDF.getField("Eintrag").Value = CStr(ActiveSheet.Range("B2").Value)
        BasisPDF.Save "C:\" & CStr(ActiveSheet.Range("B3").Value) & ".pdf" ' Speichern unter neuem Namen
        AvDoc.Close
    End If
    Workbooks("BasisExcel.xlsx").Close
End Sub
  1. Makro ausführen: Klicke auf den Button, um das Makro auszuführen. Das PDF wird mit den Daten aus Excel befüllt und gespeichert.

Häufige Fehler und Lösungen

  • Fehler: "Das PDF-Dokument konnte nicht geöffnet werden."

    • Lösung: Überprüfe den Pfad zur PDF-Datei. Stelle sicher, dass die Datei existiert und der Pfad korrekt ist.
  • Fehler: "Das Feld 'Eintrag' wurde nicht gefunden."

    • Lösung: Vergewissere Dich, dass das Feld im PDF-Formular genau so benannt ist. Groß- und Kleinschreibung sind wichtig.
  • Fehler: "Der Speicherort ist nicht verfügbar."

    • Lösung: Stelle sicher, dass der Pfad in BasisPDF.Save korrekt ist und Du Schreibrechte in diesem Verzeichnis hast.

Alternative Methoden

Wenn Du keinen VBA-Code verwenden möchtest, gibt es alternative Möglichkeiten:

  • Adobe Acrobat: Mit Adobe Acrobat Pro kannst Du Formulare erstellen und Excel-Daten importieren, ohne VBA zu verwenden.
  • Drittanbieter-Tools: Es gibt Tools wie PDFCreator oder PDF-XChange, die das Ausfüllen von PDFs mit Excel-Daten unterstützen.

Praktische Beispiele

Hier ist ein einfaches Beispiel für einen Excel-Bereich, der die Daten enthält:

A B
Name Eintrag
Max Mustermann
Neuer Dateiname

Verwende für den VBA-Code die Zelle B2 für die Eintragsdaten und B3 für den Dateinamen.


Tipps für Profis

  • Fehlerbehandlung: Implementiere Fehlerbehandlungsroutinen in Deinem VBA-Code, um unerwartete Probleme besser zu managen.
  • Wiederverwendbarkeit: Überlege, Deine VBA-Funktion so zu gestalten, dass sie mehrere Felder im PDF ausfüllen kann.
  • Zugriffsrechte: Achte darauf, dass die AcroExch-App die nötigen Zugriffsrechte hat, um das PDF-Dokument zu bearbeiten.

FAQ: Häufige Fragen

1. Wie kann ich überprüfen, ob das PDF-Formular geöffnet wurde?
Du kannst eine einfache If-Abfrage einfügen, um zu prüfen, ob das PDF erfolgreich geöffnet wurde.

2. Kann ich mehrere PDF-Felder gleichzeitig ausfüllen?
Ja, Du kannst weitere BasisPDF.getField("Feldname").Value = ... Zeilen für jedes zusätzliche Feld hinzufügen.

3. Was tue ich, wenn ich kein VBA verwenden kann?
Du kannst PDF-Formulare mit Excel-Daten manuell über Adobe Acrobat oder entsprechende Software ausfüllen.

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige