Registriert seit: 14.09.2017
Version(en): 2010
Servus Leute,
vielen Dank für eure Hilfe. Mit dem Code von snb hab ich es tatsächlich zum laufen bekommen. Es gibt nur noch ein paar kleine Probleme. Will ich das Makro im Excel durchlaufen lassen, stoppt es irgendwann und es erscheint die Fehlermeldung:
Microsoft Excel wartet auf die Beendigung eine OLE-Aktion in einer anderen Anwendung
Ich habe mir dann über den Taskmanager das geöffnete Word Dokument aufgerufen und musste hier bestätigen, dass das Dokument die Excelverknüpfung (SQL-Anweisung) aktivieren soll. Dann hat alles geklappt.
Kann man das irgendwie automatisiert in den Code einfügen?
Außerdem benötige ich noch eine Möglichkeit, dem Code zu sagen, dass er mir nur die Daten aus Zeile x (z.B.: Zeile 1) in den Serienbrief einfügen soll und abspeichern.
Hintergrund ist, dass ich mir über eine User-Form die einzelnen Personen meiner Liste einzeln aufrufe und dann für genau diese Person einen Serienbrief brauche.
Vielen Dank für eure Hilfe
Gruß Felix
Registriert seit: 14.09.2017
Version(en): 2010
Niemand eine Idee wie ich die besagten Dinge noch einbauen kann?
Registriert seit: 11.04.2014
Version(en): 2021
18.09.2017, 09:51
(Dieser Beitrag wurde zuletzt bearbeitet: 18.09.2017, 09:51 von Glausius.)
Hallo,
mal ein ganz anderer Ansatz, den ich schon in vielen meiner Projekte verwende und dabei nie Probleme bekommen habe!
Warum den Umweg von Berlin nach Rom über Athen machen? Wenn ich schon die Daten(bank) der Briefempfänger in Excel verwalte, warum dann nicht auch den Serienbrief aus Excel heraus versenden? Es ist doch viel einfacher den Inhalt des Serienbriefes in eine Tabelle zu bringen, wo die entsprechend benötigten Felder über VBA dann wunschgemäß ausgefüllt werden?
Es gibt eigentlich dabei nur ein einziges Problem, in Excel kann kein automatischer Blocksatz erzeugt werden, man muss bei der Erstellung des Serienbriefes die Zeilenlängen als Flattersatz selbst bestimmen - das ist aber nur ein einmaliger Aufwand! Ansonsten läuft das viel reibungsloser als die Vermischung mit Word - auch die Auswahl der Empfänger der Information!
Gruß Günter
aus der Helden-, Messe-, Musik-, Buch-, Universitäts- und Autostadt Leipzig
Folgende(r) 1 Nutzer sagt Danke an Glausius für diesen Beitrag:1 Nutzer sagt Danke an Glausius für diesen Beitrag 28
• Eichi06
Registriert seit: 29.09.2015
Version(en): 2030,5
18.09.2017, 10:15
(Dieser Beitrag wurde zuletzt bearbeitet: 18.09.2017, 10:17 von snb.)
1. Du hast eine Word Vorlage: G:\OF\Vorlage.docx
2. Diese Vorlage ist verknüpft mit einer Excel Datei: G:\OF\daten.xlsx
3. Du arbeitest in einer Exceldatei die alle mögliche Adressen enthällt
4. Du selektierst im Userform (im Listbox) welche Adresse benützt werden soll
5. Dann schreibt VBA die selektierte Adresse in ein neue Excel Datei und speichert die Datei als G:\OF\daten.xlsx
6. Nun öffnet VBA die Word Datie und wird die 'merge' gemacht
Code:
Sub M_snb()
if listbox1.listindex>-1 then
with workbooks.add
.sheets(1).cells(1).resize(,5)=array(Listbox1.column(0),Listbox1.column(1),Listbox1.column(2),Listbox1.column(3),Listbox1.column(4))
.saveas "G:\OF\daten.xlsx",51
.close 0
end with
with getobject("G:\OF\Vorlage.docx")
.mailmerge.execute
.application.activeworkbook.saveas2 "G:\OF\briefe_001.docx"
.application.activeworkbook.close 0
.close 0
end with
end if
End Sub
Folgende(r) 1 Nutzer sagt Danke an snb für diesen Beitrag:1 Nutzer sagt Danke an snb für diesen Beitrag 28
• Eichi06
Registriert seit: 14.09.2017
Version(en): 2010
19.09.2017, 09:27
(Dieser Beitrag wurde zuletzt bearbeitet: 19.09.2017, 09:28 von Eichi06.)
@Glausius - Leider funktioniert das nicht, da ich vorgefertigte Serienbriefe benutzen muss. Ist leider nicht umgehbar.
@snb - vielen Dank für deine Hilfe. Mein Code funktioniert im großen und ganzen jetzt. Es gibt nur ein Problem. Bei Ausführen muss ich immernoch über den Task Manager zum Word wechseln um dort die folgende Abfrage zu bestätigen:
"Beim Öffnen des Dokumentes wird der folgende SQL-Befehl ausgeführt:
Select* From 'Tabelle1$'
Daten aus der Datenbank werden in das Dokument eingefügt. Möchten Sie den Vorgang fortsetzen?"
Gibt es eine Möglichkeit, dieses Feld per Code mit Ja zu beantworten?
Registriert seit: 10.08.2017
Version(en): Professionel 2013
Hallo Eichi
Tante Google fragen!!!
''www.computerwissen.de/office/word/artikel/sql-fehlermeldung-beim-offnen-einer-serienbriefdatei-vermeiden.html
Gruss
Folgende(r) 1 Nutzer sagt Danke an Helvetier für diesen Beitrag:1 Nutzer sagt Danke an Helvetier für diesen Beitrag 28
• Eichi06
Registriert seit: 14.09.2017
Version(en): 2010
Helvetier@Helvetier Danke für den Tipp. Leider bringt mir das nichts, da die Registry vom Admin gesperrt wurde und das Dokument mehrere Benutzer nutzen sollen.
Ich brauch es also zwingend im VBA-Code.
Registriert seit: 10.08.2017
Version(en): Professionel 2013
19.09.2017, 13:22
(Dieser Beitrag wurde zuletzt bearbeitet: 19.09.2017, 13:22 von Helvetier.)
(19.09.2017, 12:50)Eichi06 schrieb: Helvetier
Ich brauch es also zwingend im VBA-Code.
Hallo Eichi
Vielleicht geht es auch ohne Code. Lies mal da:
http://www.office-loesung.de/ftopic145809_0_0_asc.phpWenn Du magst, suche ich für Dich gerne weitere Tipps in Google
Gruss
Folgende(r) 1 Nutzer sagt Danke an Helvetier für diesen Beitrag:1 Nutzer sagt Danke an Helvetier für diesen Beitrag 28
• Eichi06
Registriert seit: 14.09.2017
Version(en): 2010
Hallo Helvetier,
wenn ich das so mache, wie es da steht, habe ich dann keinen Serienbrief mehr, sondern ein normales Word-Dokument. Ich brauch aber den Serienbrief.
Registriert seit: 29.09.2015
Version(en): 2030,5
Du kannst versuchen mit (Excel 2010) :
Code:
Sub M_snb()
CreateObject("Wscript.shell").regwrite "HKEY_CURRENT_USER\Software\Microsoft\Office\14.0\Word\Options\SQLSecurityCheck", 0, "REG_DWORD"
End Sub
Folgende(r) 1 Nutzer sagt Danke an snb für diesen Beitrag:1 Nutzer sagt Danke an snb für diesen Beitrag 28
• Eichi06