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

Forumthread: Aus Excel word Formular füllen & als pdf speichern

Aus Excel word Formular füllen & als pdf speichern
Tim
Hallo,
ich habe ein Excel Datei it Makros in deren Verlauf ich eine Word Formatvorlage fülle. Soweit klappt das alles auch gut.

Sub Test()
Dim wrdApp
Dim wrdDoc
Dim Pfad As String
Pfad = ThisWorkbook.Path & "\Vorlagen\Vorlage Gutschrift.docx"
On Error GoTo ErrorExit
Set wrdApp = CreateObject("Word.Application")
Set wrdDoc = wrdApp.Documents.Open(Pfad)
wrdApp.Visible = False
wrdDoc.FormFields("Text1").Result = Tabelle2.Cells(Zeile, 4)
wrdDoc.FormFields("Text2").Result = Tabelle2.Cells(Zeile, 9)
wrdDoc.FormFields("Text3").Result = Tabelle2.Cells(Zeile, 10) & " " & Tabelle2.Cells(Zeile,  _
11)
wrdDoc.FormFields("Text4").Result = Tabelle2.Cells(Zeile, 12) & " " & Tabelle2.Cells(Zeile,  _
13)
wrdDoc.FormFields("Text5").Result = Tabelle2.Cells(Zeile, 8)
wrdDoc.FormFields("Text6").Result = TextBox2.Text
wrdDoc.FormFields("Text7").Result = TextBox3.Text
wrdDoc.FormFields("Text8").Result = TextBox1.Text
Pfad = ThisWorkbook.Path & "\Dokumente\" & TextBox1.Text & ".pdf"
wrdDoc.Save
wrdDoc.Close
ErrorExit:
wrdApp.Quit
Set wrdDoc = Nothing
Set wrdApp = Nothing
End Sub

Nun würde ich gerne noch das Word Dokument über die Funktion Speicher unter ... Als pdf freigeben direkt als pdf speichern.
Für ein Excel-Blatt funktioniert das mit
Tabelle10.ExportAsFixedFormat Type:=xlTypePDF, Filename:=Pfad _
, Quality:=xlQualityStandard, IncludeDocProperties:=True, IgnorePrintAreas _
:=False, OpenAfterPublish:=True

Für ein Word-Objekt bringt das allerdings einen Fehler.
Über den Word Makro-Aufzeichner habe ich gesehen, dass der Word Befehl etwas verändert aussieht.
ActiveDocument.ExportAsFixedFormat OutputFileName:= _
"C:\Users\Tim IJsselstein\Desktop\Vorlage Gutschrift.pdf", ExportFormat:= _
wdExportFormatPDF, OpenAfterExport:=True, OptimizeFor:= _
wdExportOptimizeForPrint, Range:=wdExportAllDocument, From:=1, To:=1, _
Item:=wdExportDocumentContent, IncludeDocProps:=True, KeepIRM:=True, _
CreateBookmarks:=wdExportCreateNoBookmarks, DocStructureTags:=True, _
BitmapMissingFonts:=True, UseISO19005_1:=False

Diesen Befehl verweigert mir aber auch mein Excel vba. Der Kackpunkt ist das ExportFormat:= _
wdExportFormatPDF
das er nicht erkennt/akzeptiert.
Jemand eine Idee?
Danke und Gruß
Tim
Anzeige

2
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Benutzer
Anzeige
AW: Aus Excel word Formular füllen & als pdf speichern
31.05.2011 12:43:37
Case
Hallo, :-)
da Du mit "Late Binding" arbeitest - sprich die Wordbibliothek ist nicht eingebunden - musst Du mit den Konstanten arbeiten:
Die Konstante für wdExportFormatPDF ist 17.
Entweder deklarierst Du das am Anfang, oder Du schreibst einfach die 17 statt "wdExportFormatPDF"
Das wiederum bekommst Du über den Objektkatalog im VBA Editor (F2) in Word raus.
Servus
Case

Anzeige
Danke
31.05.2011 12:54:37
Tim
...und wieder was gelernt !!!.
Vielen Dank, klappt bestens
;

Forumthreads zu verwandten Themen

Anzeige
Anzeige
Anzeige

Infobox / Tutorial

Excel und Word: Formular automatisch ausfüllen und als PDF speichern


Schritt-für-Schritt-Anleitung

Um ein Word-Formular aus Excel automatisch auszufüllen und als PDF zu speichern, folge dieser Anleitung:

  1. Word und Excel vorbereiten: Stelle sicher, dass Du eine Word-Vorlage (z.B. Vorlage Gutschrift.docx) hast, die Formularfelder enthält, die Du ausfüllen möchtest.

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

  3. Makro erstellen: Füge ein neues Modul hinzu und kopiere den folgenden VBA-Code:

    Sub FillWordFormAndSaveAsPDF()
       Dim wrdApp As Object
       Dim wrdDoc As Object
       Dim Pfad As String
       Dim Zeile As Long
    
       Zeile = 1 ' Setze die Zeile, die Du aus Excel auslesen möchtest
       Pfad = ThisWorkbook.Path & "\Vorlagen\Vorlage Gutschrift.docx"
    
       Set wrdApp = CreateObject("Word.Application")
       Set wrdDoc = wrdApp.Documents.Open(Pfad)
       wrdApp.Visible = False
    
       ' Fülle die Formularfelder mit Excel-Daten
       wrdDoc.FormFields("Text1").Result = Tabelle2.Cells(Zeile, 4)
       wrdDoc.FormFields("Text2").Result = Tabelle2.Cells(Zeile, 9)
       ' Füge weitere benötigte Felder hinzu
    
       ' Speichere das Dokument als PDF
       Pfad = ThisWorkbook.Path & "\Dokumente\" & Tabelle2.Cells(Zeile, 4) & ".pdf"
       wrdDoc.ExportAsFixedFormat OutputFileName:=Pfad, ExportFormat:=17, OpenAfterExport:=True
    
       wrdDoc.Close
       wrdApp.Quit
       Set wrdDoc = Nothing
       Set wrdApp = Nothing
    End Sub
  4. Makro ausführen: Schließe den VBA-Editor und führe das Makro in Excel aus.


Häufige Fehler und Lösungen

Fehler 1: „wdExportFormatPDF wird nicht erkannt“
Wenn Du mit Late Binding arbeitest, musst Du die Konstante wdExportFormatPDF durch die Zahl 17 ersetzen.

Lösung: Ändere ExportFormat:=wdExportFormatPDF in ExportFormat:=17.

Fehler 2: Das Word-Dokument öffnet nicht
Wenn das Word-Dokument nicht angezeigt wird, könnte es sein, dass wrdApp.Visible auf False gesetzt ist.

Lösung: Setze wrdApp.Visible = True, um das Word-Fenster sichtbar zu machen.


Alternative Methoden

  1. Manuelles Ausfüllen: Du kannst das Word-Dokument auch manuell ausfüllen und dann mit „Speichern unter“ als PDF speichern.

  2. Excel als PDF Formular speichern: Nutze die Funktion ExportAsFixedFormat, um ein Excel-Dokument direkt als PDF zu speichern.

  3. PDF-Formular erstellen: Mit speziellen Tools oder Add-Ins kannst Du aus Word direkt ein interaktives PDF-Formular erstellen, das ausfüllbare Felder enthält.


Praktische Beispiele

  • Excel Formular in PDF Formular umwandeln: Nutze die Funktion ExportAsFixedFormat, um ein Excel-Dokument als PDF zu speichern und mit Formularfeldern zu versehen.

  • Gutschrift Vorlage: Erstelle eine Gutschrift-Vorlage in Word, fülle diese mit Excel-Daten aus und speichere sie als PDF.


Tipps für Profis

  • Automatisierung: Überlege, die Automatisierung weiter zu verbessern, indem Du ein Event-Trigger in Excel einrichtest, der das Makro bei bestimmten Aktionen auslöst.

  • Dokumentation: Kommentiere Deinen VBA-Code ausführlich, um die Wartung und Anpassung in der Zukunft zu erleichtern.

  • Sicherheit: Achte darauf, dass Deine Word-Vorlage keine sensiblen Daten enthält, bevor Du sie als PDF speicherst.


FAQ: Häufige Fragen

1. Wie erstelle ich ein PDF-Formular zum Ausfüllen in Word?
Du kannst ein Word-Dokument mit Formularfeldern erstellen und dann die Funktion „Speichern unter“ verwenden, um es als PDF zu speichern.

2. Kann ich Excel-Daten direkt in ein Word-Dokument übertragen?
Ja, mit VBA kannst Du Daten aus Excel in ein Word-Dokument übertragen, indem Du die entsprechenden Formularfelder füllst.

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige