Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1792to1796
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

VBA Serienbrief Auswahl Tabellen

VBA Serienbrief Auswahl Tabellen
13.11.2020 15:53:11
Brian
Hallo zusammen,
ich öffne aus Excel mittels VBA einen Word-Serienbrief und drucke diesen als PDF. Das klappt alles soweit, aber ich ich möchte mein Tabellenblatt beliebig oft kopieren und immer die Daten des aktiven Tabellenblatts an meinen Word-Serienbrief übergeben. Leider werden jedoch immer die Daten des ersten Tabellenblattes and den Word-Serienbrief übergeben.
Hier ein Auszug aus meinem Code:

'Setze Datenbereich des Serienbriefs fest.
ActiveSheet.Range("C17:BC" & j).Select
ActiveSheet.Names("Kollidaten").RefersTo = Selection
'ENDE
'Word öffnen
Dim AppWD As Object
Set AppWD = CreateObject("Word.Application") 'Word als Object starten
AppWD.Visible = True
'ENDE
'Setze die Datenquelle des Serienbriefs auf den Dateiname des Excelfiles bzw. dessen  _
Namensregister "Kollidaten"!
AppWD.ActiveDocument.MailMerge.MainDocumentType = wdFormLetters
AppWD.ActiveDocument.MailMerge.OpenDataSource Name:= _
Dateiname, 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=Dateiname;Mode=Read; _
Extended Properties=""HDR=YES;IMEX=1;"";Jet OLEDB:System database="""";Jet OLEDB:Registry Path=" _
_
""";Jet OLEDB:Engine Type=35;Jet OLEDB:Database Locking Mode=0;" _
, SQLStatement:="SELECT * FROM `Kollidaten`", SQLStatement1:="", SubType _
:=wdMergeSubTypeAccess
AppWD.ActiveDocument.MailMerge.ViewMailMergeFieldCodes = wdToggle
'ENDE

Hat jemand eine Idee wie ich die Daten des aktiven Tabellenblattes übertragen kann?

2
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: VBA Serienbrief Auswahl Tabellen
13.11.2020 20:01:40
Yal
Hallo Brian,
Es ist mehr eine Word-Frage als Excel (daher wenig Helfer), aber auch schön, im anderen Objektmodell rumzuwüllen.
In deinem
    AppWD.ActiveDocument.MailMerge.OpenDataSource _
Name:=Dateiname, _
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=Dateiname;Mode=Read;Extended Properties=""HDR=YES;IMEX=1;"";" & _
"Jet OLEDB:System database="""";Jet OLEDB:Registry Path="""";" & _
"Jet OLEDB:Engine Type=35;Jet OLEDB:Database Locking Mode=0;", _
SQLStatement:="SELECT * FROM 'Kollidaten'", _
SQLStatement1:="", _
SubType :=wdMergeSubTypeAccess
Gibt es
SQLStatement:="SELECT * FROM 'Kollidaten'"
Ersetze an der Stelle 'Kollidaten' durch den Namen der Zieltabelle (einfache Hochkomma nicht vergessen).
Ungetestet.
Viel Erfolg
Yal
Anzeige
AW: VBA Serienbrief Auswahl Tabellen
13.11.2020 20:31:33
Luschi
Hallo Brian,
bei mir läuft das so:
Dim rg As Range
Set rg = ActiveSheet.Range("C17:BC" & j)
'...
..., SQLStatement:="SELECT * FROM [" & rg.Parent.Name & "$" & rg.Address(0, 0) & "]"
Gruß von Luschi
aus klein-Paris
PS: zwischen dem Namen der Tabelle (rg.Parent.name) und dem Tabellenbereich muß! ein '$' und kein '!' stehen und der Adreßbereich darf kein '$'-Zeichen enthalten, deshalb rg.Address(0, 0) und in der SQL--Literatur wird empfohlen, den Datenbereich mit [] zu markieren.
Den Namen 'Kollidaten' kannst Du dann auch wegschmeißen.

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige