Dieses Forum nutzt Cookies
Dieses Forum verwendet Cookies, um deine Login-Informationen zu speichern, wenn du registriert bist, und deinen letzten Besuch, wenn du es nicht bist. Cookies sind kleine Textdokumente, die auf deinem Computer gespeichert werden. Die von diesem Forum gesetzten Cookies werden nur auf dieser Website verwendet und stellen kein Sicherheitsrisiko dar. Cookies aus diesem Forum speichern auch die spezifischen Themen, die du gelesen hast und wann du zum letzten Mal gelesen hast. Bitte bestätige, ob du diese Cookies akzeptierst oder ablehnst.

Ein Cookie wird in deinem Browser unabhängig von der Wahl gespeichert, um zu verhindern, dass dir diese Frage erneut gestellt wird. Du kannst deine Cookie-Einstellungen jederzeit über den Link in der Fußzeile ändern.

Das Update ist abgeschlossen, Ihr könnt unser Forum jetzt wieder wie gewohnt nutzen. Eventuelle Bugs und Auffälligkeiten postet Ihr bitte im entsprechenden Forum im Bereich Forumstechnik. x


VBA aus Excel Word Datei öffnen und als PDF speicher
#1
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
Antworten Top
#2
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
Antworten Top
#3
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
Antworten Top
#4
(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
Antworten Top
#5
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.
Antworten Top
#6
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
[-] Folgende(r) 1 Nutzer sagt Danke an Gast für diesen Beitrag:
  • CHASiN1994
Antworten Top
#7
Hi,

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

Win10 - Office365 / MacOS - Office365
[-] Folgende(r) 1 Nutzer sagt Danke an HKindler für diesen Beitrag:
  • CHASiN1994
Antworten Top
#8
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
Zum übersetzen von Excel Formeln:

http://dolf.trieschnigg.nl/excel/index.p...gids=en+de
[-] Folgende(r) 1 Nutzer sagt Danke an snb für diesen Beitrag:
  • CHASiN1994
Antworten Top
#9
(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.
Antworten Top
#10
ändere in Word bevor du meinen Makro laufen lasst:

Code:
Sub M_snb()
  Options.UpdateLinksAtOpen = True
End Sub
Zum übersetzen von Excel Formeln:

http://dolf.trieschnigg.nl/excel/index.p...gids=en+de
Antworten Top


Gehe zu:


Benutzer, die gerade dieses Thema anschauen: 1 Gast/Gäste