Clever-Excel-Forum

Normale Version: VBA aus Excel Word Datei öffnen und als PDF speicher
Du siehst gerade eine vereinfachte Darstellung unserer Inhalte. Normale Ansicht mit richtiger Formatierung.
Seiten: 1 2
Hallo zusammen,

ich habe eine Herausforderung und finde leider im Internet viele Seiten die sowas zeigen. Jedoch laufen die Codes bei mir nicht. 

Ich habe hier aus meiner Sicht ein vereinfachtes Beispiel mit einem Code, der mir immer den Laufzeitfehler 424 gibt "Objekt erforderlich" leider komme ich da echt nicht weiter.

Code:
Dim AppWD As Object
Set AppWD = CreateObject("Word.Application") 'Word als Object starten
AppWD.Visible = True
AppWD.documents.Open "F:\2. Poolordner Aurelium\8813\5. Rechnungserstellung\Vorlage_Rechnung.docx"
AppWD.Visible = True


   
    Dim sFolderPath As String
    Dim sFileName As String
    Dim sNewFileName As String
   
    'Check if Folder Exists
    sFolderPath = "F:\2. Poolordner Aurelium\8813\5. Rechnungserstellung\Rechnung\"
   
    'Set New File Name
    sFileName = "Rechnung_KW1"

   
    'Save File
Activedocument.ExportAsFixedFormat outputfilename:="F:\2. Poolordner Aurelium\8813\5. Rechnungserstellung\Rechnung\" & sFileName & ".pdf", exportformat:=wdExportFormatPDF
   

   
    Dim Mailadresse As String, Betreff As String
Dim olApp As Object
Set olApp = CreateObject("Outlook.Application")
Dieser Code ist ein kleiner ausschnitt aus meinem gesamten Code, der vorher noch paar Themen in Excel bearbeitet. Es geht um den 'Save Teil, der leider immer wieder die Fehlermeldung zurückgibt.

Kann mir jemand sagen warum dieser Code nicht funktioniert?

Mit freundlichen Grüßen & Vielen Dank im Voraus
Hallo,

vielleicht so (ungetestet):

Code:
Dim AppWD As Object
    Dim sFolderPath As String
    Dim sFileName As String
    Dim sNewFileName As String
    Dim Mailadresse As String, Betreff As String
    Dim olApp As Object
    
    'Check if Folder Exists
    sFolderPath = "F:\2. Poolordner Aurelium\8813\5. Rechnungserstellung\Rechnung\"
  
    'Set New File Name
    sFileName = "Rechnung_KW1"

  
    'Save File
    Set AppWD = CreateObject("Word.Application") 'Word als Object starten
    AppWD.Visible = True
    AppWD.documents.Open("F:\2. Poolordner Aurelium\8813\5. Rechnungserstellung\Vorlage_Rechnung.docx").ExportAsFixedFormat outputfilename:="F:\2. Poolordner Aurelium\8813\5. Rechnungserstellung\Rechnung\" & sFileName & ".pdf", exportformat:=wdExportFormatPDF
    AppWD.Visible = True

  
    Set olApp = CreateObject("Outlook.Application")

Gruß Uwe
Moin,

danke für die Mühe. Funktioniert leider nicht. 

Code:
Activedocument.ExportAsFixedFormat outputfilename:="F:\2. Poolordner Aurelium\8813\5. Rechnungserstellung\Rechnung\" & sFileName & ".pdf", exportformat:=wdExportFormatPDF

hier kommt nach- wie vor der Fehler
(29.09.2022, 09:32)CHASiN1994 schrieb: [ -> ]Moin,

danke für die Mühe. Funktioniert leider nicht. 

Code:
Activedocument.ExportAsFixedFormat outputfilename:="F:\2. Poolordner Aurelium\8813\5. Rechnungserstellung\Rechnung\" & sFileName & ".pdf", exportformat:=wdExportFormatPDF

hier kommt nach- wie vor der Fehler

Das ist auch nach- wie vor Dein Code.

Gruß Uwe
Hi,

ja ich habe natürlich deinen ganzen Code so eingefügt wie es soll. Jedoch kommt nach- wie vor genau an der Stelle der Fehler.. Also die Bezeichnungen etc. Poolordner Verweis etc. funktionieren soweit weil ich oberhalb das Dokument öffne. Ich gehe davon aus, dass das outputfilename irgendwie fehlerhaft ist bzw. nicht läuft.
Hallo, 19 

nach diesem Prinzip (getestet): 21 

Code:
Option Explicit
Public Sub Main()
    Dim objWDApp As Object
    Dim objDoc As Object
    Set objWDApp = CreateObject("Word.Application")
    Set objDoc = objWDApp.Documents.Open("C:\TMP\Laufkarte.docx")
    objDoc.SaveAs "C:\TMP\" & "Rechnung" & ".pdf", 17 'wdFormatPDF = 17
    objDoc.Close False
    objWDApp.Quit
    Set objDoc = Nothing
    Set objWDApp = Nothing
End Sub

An deine Gegebenheiten anpassen. Dodgy
Hi,

dein Code läuft in Excel und Excel kennt kein ActiveDocument. Du musst schon Word ansprechen:
Code:
AppWD.Activedocument.ExportAsFixedFormat outputfilename:=...
Dieser Code reicht

Code:
Sub M_snb()
  With getobject("G:\OF\Beispiel.docx")
    .ExportAsFixedFormat 0, "G:\OF\Beispiel.pdf"
    .close 0
  End With
End Sub
(29.09.2022, 11:01)HKindler schrieb: [ -> ]Hi,

dein Code läuft in Excel und Excel kennt kein ActiveDocument. Du musst schon Word ansprechen:
Code:
AppWD.Activedocument.ExportAsFixedFormat outputfilename:=...

Hi.. läuft leider auch nicht :(

Code:
Sub test()


   
   
Dim AppWD As Object

    Dim sFileName As String


   

Set AppWD = CreateObject("Word.Application") 'Word als Object starten
AppWD.Visible = True
AppWD.documents.Open "F:\2. Poolordner Aurelium\8813\5. Rechnungserstellung\Vorlage_Rechnung.docx"
AppWD.Visible = True


   

   

   
    'Set New File Name
    sFileName = "Rechnung_KW1"

   
    'Save File
AppWD.Activedocument.ExportAsFixedFormat outputfilename:="F:\2. Poolordner Aurelium\8813\5. Rechnungserstellung\Rechnung\" & sFileName & ".pdf", exportformat:=wdExportFormatPDF
   
End Sub


Kann folgendes sein?.. Diese Datei Vorlage_Rechnung hat verknüpfungen zu der Excel, aus der wir dieses Makro anstoßen. Wenn man das Word Dokument öffnet kommt diese Fragestellung "Das Dokument enthält verknüpfungen auf eine andere Datei. Möchten Sie diese Verknüpfungen aktualisieren?"

Könnte es sein, dass wir per Makro dieses Fenster beantworten müssen bevor das Makro weiter laufen kann?

(29.09.2022, 11:35)snb schrieb: [ -> ]Dieser Code reicht

Code:
Sub M_snb()
  With getobject("G:\OF\Beispiel.docx")
    .ExportAsFixedFormat 0, "G:\OF\Beispiel.pdf"
    .close 0
  End With
End Sub

"Typen unverträglich"
Code:
Sub test()
   
   
    Dim AppWD As Object
    Dim sFileName As String
 

Set AppWD = CreateObject("Word.Application") 'Word als Object starten
AppWD.Visible = True
AppWD.documents.Open "F:\2. Poolordner Aurelium\8813\5. Rechnungserstellung\Vorlage_Rechnung.docx"
AppWD.Visible = True
   
    'Set New File Name
    sFileName = "Rechnung_KW1"
   
    'Save File
  With GetObject("F:\2. Poolordner Aurelium\8813\5. Rechnungserstellung\Vorlage_Rechnung.docx")
    .ExportAsFixedFormat 0, "F:\2. Poolordner Aurelium\8813\5. Rechnungserstellung\Vorlage_Rechnung.pdf"
    .Close 0
  End With
End Sub

(29.09.2022, 10:53)Case schrieb: [ -> ]Hallo, 19 

nach diesem Prinzip (getestet): 21 

Code:
Option Explicit
Public Sub Main()
    Dim objWDApp As Object
    Dim objDoc As Object
    Set objWDApp = CreateObject("Word.Application")
    Set objDoc = objWDApp.Documents.Open("C:\TMP\Laufkarte.docx")
    objDoc.SaveAs "C:\TMP\" & "Rechnung" & ".pdf", 17 'wdFormatPDF = 17
    objDoc.Close False
    objWDApp.Quit
    Set objDoc = Nothing
    Set objWDApp = Nothing
End Sub

An deine Gegebenheiten anpassen. Dodgy

Hier erhalte ich den Code "Microsoft wartet auf die Beendigung einer OLE Aktion"
Das dürfen wir leider aufgrund unseres Systemadmin nicht ändern. Da muss ich warten bis er in Rente ist..

also ganz ehrlich Leute.. das kann ja nicht sein. 

Ich danke euch aber alle herzlich für eure Mühen. Sehr nett.
ändere in Word bevor du meinen Makro laufen lasst:

Code:
Sub M_snb()
  Options.UpdateLinksAtOpen = True
End Sub
Seiten: 1 2