Excel makro: Serienbrief existiert angeblich nicht
#1
Guten Morgen,

ich versuch nochmal mein Glück, gestern konnte mir ja leider keiner helfen.  :22:

Folgendes, ich möchte aus Excel heraus ein Serienbrief starten- zwischenzeitlich hab ich folgendes Makro dazu gefunden:

Private Sub CommandButton4_Click()

Dim oWrd As Object
Dim oDocx As Object
Dim strSheetName As String
strSheetName = "Rechnungsausgabe"
Set oWrd = CreateObject("word.application")
Set oDocx = oWrd.Documents.Open("ThisWorkbook.Path & _Application.PathSeparator & Rechnung.docx")
oWrd.Visible = True

oDocx.MailMerge.MainDocumentType = wdFormLetters
oDocx.MailMerge.OpenDataSource Name:= _
       "ThisWorkbook.Path & _Application.PathSeparator & Rechnung.docx", _
       ConfirmConversions:=False, ReadOnly:=False, LinkToSource:=True, _
       AddToRecentFiles:=False, PasswordDocument:="", PasswordTemplate:="", _
       WritePasswordDocument:="", WritePasswordTemplate:="", Revert:=False, _
       Format:=wdOpenFormatAuto, Connection:= _
       "Provider=Microsoft.ACE.OLEDB.12.0;User ID=Admin;Data Source=ThisWorkbook.Path &_Application.PathSeparator & Gebührenrechner.docx.xlsm;Mode=Read;Extended Properties=""HDR=YES;IMEX=1;"";Jet OLEDB:System database="""";Jet OLEDB:Registry Path="""";Jet OLEDB:Engine Type=37;J" _
       , SQLStatement:="SELECT * FROM [" & strSheetName & "$]", SQLStatement1 _
       :="", SubType:=wdMergeSubTypeAccess

Set oDocx = Nothing
Set oWrd = Nothing

End Sub

In der Zeile:

Set oDocx = oWrd.Documents.Open("ThisWorkbook.Path & _Application.PathSeparator & Rechnung.docx")

wird dann immer ausgegeben- "Datei wurde nicht gefunden" - sie existiert aber. Weiß jemand wo mein Fehler hier liegt? 

Gruß Basti
Top
#2
Hallo,

wenn der Code bei Dir im VBA drin steht, so wie Du ihn hier gepostet hast, müsste der Unterstrich
vor dem Application weg und die Anführungszeichen sind nicht richtig. Das wäre dann so...

Set oDocx = oWrd.Documents.Open(ThisWorkbook.Path & Application.PathSeparator & "Rechnung.docx")

An den anderen Stellen dann auch entsprechend anpassen.

Gruß
Microsoft Excel Expert · Microsoft Most Valuable Professional (MVP) :: 2011-2019 & 2020-2022 :: 10 Awards
https://de.excel-translator.de/translator :: Online Excel-Formel-Übersetzer :: Funktionen :: Fehlerwerte :: Argumente :: Tabellenbezeichner
Top
#3
Bitte verwende Code Tags !

Erstelle ein Word Mailmerge Maindocument.

Die einzige Code die du brauchst in Excel:

Code:
Sub M_snb()
   with getobject("G:\OF\Mailmaindoc.docx")
     .mailmerge.execute
     .application.activedocument.saves "G\OF\rechnungen.docx"
     .application.activedocument.close 0
     .close 0
  end witn
End Sub
Zum übersetzen von Excel Formeln:

http://dolf.trieschnigg.nl/excel/index.p...gids=en+de
Top
#4
Hallo Mainweb,

erstmal vielen Dank- mit diesen Änderungen öffnet sich das Worddokument, ich muss aber jedesmal die Datenquelle neu eingeben.

Gibt es eine Möglichkeit das die Automatisch mit passiert?

Viele Grüße

Basti
Top
#5
Hallo,
ich habe das selbe Problem.
Wenn ich nun den oben genannten Code in mein UserForm einfüge, erscheint beim Kompillieren "Fehler beim Kompillieren: Variable nicht definiert" Im VBA-Code wird dann die Zeile "oDocx.MailMerge.MainDocumentType = wdFormLetters", genauer gesagt "wdFormLetters" als fehlerhaft markiert.

Danke
Top
#6
Hallo Thor,

Zitat:"Fehler beim Kompillieren: Variable nicht definiert" 

... dann ist ja ein Übeltäter von wievielen eigentlich insgesamt schon fast mal ausgemacht, oder?
Aber selbst um diesen Ersten dingfest zu machen reichen die von Dir gemachten Angaben nicht aus.

Und wieviele kommen dann noch nachgeklackert? .... Richtig, das wird der Code zeigen.

Du solltest zumindest mal den oder die Codes hier zeigen.
Mir persönlich, weil ich gerne was zum Testen habe, wäre allerdings die Datei selbst lieber.

Und noch was:
Du solltest es vermeiden, Dich an einen laufenden Thread mit weiteren Fragen anzuhängen.
Mache künftig lieber, alleine schon der Übersicht wegen, Deinen eigenen Thread auf.
Top
#7
(27.02.2017, 22:24)Basti5 schrieb: Hallo Mainweb,

erstmal vielen Dank- mit diesen Änderungen öffnet sich das Worddokument, ich muss aber jedesmal die Datenquelle neu eingeben.

Warum ?

Es wäre besser die Datenquelle zu kopiieren zur im Maindocument verbundene Queldatei.
Dan reicht danach das öffnen der Maindocument.

Code:
filecopy "G:\OF\neue daten.xlsx", "G:\OF\maindocument_quelle.xlsx"
Zum übersetzen von Excel Formeln:

http://dolf.trieschnigg.nl/excel/index.p...gids=en+de
Top
#8
Hallo Snb,

sorry, aber ich versteh es einfach nicht. Hierfür fehlen mir noch zu viele Kenntnisse. 

Was genau meinst du main Dokument und wo und wie genau müsste ich die Datenquelle kopieren.

Ein Dokument "Rechnung" habe ich ja angelegt und die Exceltabelle als Datenquelle hinzugefügt.

Ich finde es toll, dass du hilfst, aber ich bräuchte hier (leider) eine Antwort für Dummies (Schritt für Schritt) Blush .

VG

Basti
Top
#9
Schritt 1

du hast eine Datenquelle z.B.  "G:\OF\daten.xlsx"

Schritt2

Du erstellst eine WordDatei (Serienbrief)  z.B. "G:\OF\rechnung.docx"

Schritt 3

Du fügst die Exceltabelle "G:\OF\daten.xlsx" als Datenquelle zu.

Schritt 4

Du speicherst die Worddatei "G:\OF\rechnung.docx"

Schtiit 5

Du empfangst neue Daten , z.B "G:\OF\neue_daten.xlsx"

Schritt 6

Du ersetzt die alte Daten von neue:

filecopy G:\OF\neue_daten.xlsx", "G:\OF\daten.xlsx"

Schritt 7

Du öffnest die Serienbrief "G:\OF\Rechnung.docx".
Nu sind alle neue Daten drin.
Zum übersetzen von Excel Formeln:

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


Gehe zu:


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