Guten Morgen allerseits,
ich arbeite gerade an einem Kalkulationstool in Excel, dass automatisch ein Angebot in Form eines Word Serienbriefs (eingebettet in das Excel, daher ohne eigenen Pfad) erstellt. Grundsätzlich funktioniert das recht gut und läuft auch stabil. Aber jedes Mal, wenn ich das Tool per Mail versende, verschwindet beim Anwender im Serienbrief die Verbindung zur Datenquelle.
Meine Idee ist nun folgende:
Ich möchte den Pfad des Excel-Files über den Zwischenspeicher an das Word Makro übergeben und dort bei jeder Anwendung eine automatische Zuordnung der Quelle vornehmen:
VBA Excel (Auszug):
Dim pfad As String
Dim pfad_xl As DataObject
Set pfad_xl = New DataObject
pfad = ActiveWorkbook.Path & "\" & ActiveWorkbook.Name
pfad_xl.SetText pfad
pfad_xl.PutInClipboard
pfad = pfad_xl.GetText
appWord.Run "wd_serienbrief", pfad
VBA Word (Auszug):
Dim pfad As String
pfad = Selection.Text
MsgBox (pfad)
ActiveDocument.MailMerge.OpenDataSource Name:= _
pfad, _
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=pfad;Mode=Read;Extended
Properties=""HDR=YES;IMEX=1;"";Jet OLEDB:System database="""";Jet OLEDB:Registry Path="""";Jet
OLEDB:Engine Type=" _
, SQLStatement:="SELECT * FROM `SB_rel$`", SQLStatement1:="", SubType:= _
wdMergeSubTypeAccess
ActiveDocument.MailMerge.ViewMailMergeFieldCodes = wdToggle
Leider funktioniert die Übergabe nicht. Der Pfad findet sich zwar im Zwischenspeicher, kann aber im Word nicht ausgelesen werden.
Habt ihr eine Idee, woran das liegt? Bin auch offen für alternative Lösungsvorschläge!
Vielen Dank & Beste Grüße,
Georg |