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.

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
Antworten 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
Antworten 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
Antworten 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
Antworten 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
Antworten 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.
________________________________________________________________________
wer aufgibt, ohne es versucht zu haben, gibt einfach nur auf!

Grüße aus Norderstedt, Peter
Antworten Top
#7
(27.02.2017, 21: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
Antworten 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
Antworten 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
Antworten Top


Gehe zu:


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