Top-Themen

Aktuelle Themen (A bis Z)

Administrator.de FeedbackApache ServerAppleAssemblerAudioAusbildungAuslandBackupBasicBatch & ShellBenchmarksBibliotheken & ToolkitsBlogsCloud-DiensteClusterCMSCPU, RAM, MainboardsCSSC und C++DatenbankenDatenschutzDebianDigitiales FernsehenDNSDrucker und ScannerDSL, VDSLE-BooksE-BusinessE-MailEntwicklungErkennung und -AbwehrExchange ServerFestplatten, SSD, RaidFirewallFlatratesGoogle AndroidGrafikGrafikkarten & MonitoreGroupwareHardwareHosting & HousingHTMLHumor (lol)Hyper-VIconsIDE & EditorenInformationsdiensteInstallationInstant MessagingInternetInternet DomäneniOSISDN & AnaloganschlüsseiTunesJavaJavaScriptKiXtartKVMLAN, WAN, WirelessLinuxLinux DesktopLinux NetzwerkLinux ToolsLinux UserverwaltungLizenzierungMac OS XMicrosoftMicrosoft OfficeMikroTik RouterOSMonitoringMultimediaMultimedia & ZubehörNetzwerkeNetzwerkgrundlagenNetzwerkmanagementNetzwerkprotokolleNotebook & ZubehörNovell NetwareOff TopicOpenOffice, LibreOfficeOutlook & MailPapierkorbPascal und DelphiPeripheriegerätePerlPHPPythonRechtliche FragenRedHat, CentOS, FedoraRouter & RoutingSambaSAN, NAS, DASSchriftartenSchulung & TrainingSEOServerServer-HardwareSicherheitSicherheits-ToolsSicherheitsgrundlagenSolarisSonstige SystemeSoziale NetzwerkeSpeicherkartenStudentenjobs & PraktikumSuche ProjektpartnerSuseSwitche und HubsTipps & TricksTK-Netze & GeräteUbuntuUMTS, EDGE & GPRSUtilitiesVB for ApplicationsVerschlüsselung & ZertifikateVideo & StreamingViren und TrojanerVirtualisierungVisual StudioVmwareVoice over IPWebbrowserWebentwicklungWeiterbildungWindows 7Windows 8Windows 10Windows InstallationWindows MobileWindows NetzwerkWindows ServerWindows SystemdateienWindows ToolsWindows UpdateWindows UserverwaltungWindows VistaWindows XPXenserverXMLZusammenarbeit

Serienbrief von EXCEL nach Word

Mitglied: mark47

mark47 (Level 1) - Jetzt verbinden

02.12.2019 um 18:19 Uhr, 216 Aufrufe, 10 Kommentare, 1 Danke

Guten Abend ins Forum. Auf der Suche nach einem geeigneten VBA Kode für eine Serienbrieffunktion bin ich hier fündig geworden. Habe den Kode bei meiner EXCEL Datei in ein Modul eingefügt und wie ich glaube die entsprechenden Pfade abgestimmt. Bis dahin läuft auch alles, er meckert bei folgender Codezeile " With ThisDocument.MailMerge" mit dem Fehlertext: Laufzeitfehler 424, Objekt erforderlich. Könnte mich jemand bei der Fehlerkorrektur unterstützen? Danke, Mark

01.
Sub MailMergeSaveAsSingleDocs()
02.
    Dim strDatenquelle As String, i As Long, strFilenameDOCX As String, strFilenamePDF As String
03.
    ' Ausgabepfad
04.
    ' Const outputpath = "C:\Daten\output"
05.
    Const outputpath = "C:\Users\Besitzer\Desktop\Dokument1.docx"
06.
    ' Datenquelle
07.
    strDatenquelle = "C:\Users\Besitzer\Desktop\5ter Serienbrief.xlsm"  ' "D:\Daten\datenquelle.xlsx"
08.
    'Screenupdating deaktivieren
09.
    Application.ScreenUpdating = False
10.
     With ThisDocument.MailMerge
Mitglied: cykes
03.12.2019 um 08:00 Uhr
Moin,

hast Du den VBA-Code schon mal in Word probiert? Der Seriebrief wird ja in Word generiert und die Excel-Tabelle nur als Datenquelle verwendet.
Außerdem ist in Zeile 05 der Ausgabepfad kein Pfad sondern eine Datei, dass dürfte auch nicht funktionieren - dort also ein Verzeichnis angeben.

Gruß

cykes
Bitte warten ..
Mitglied: mark47
03.12.2019 um 14:42 Uhr
Hallo und Danke erstmal. Habe den Kode im WORD eingebaut. Leider Kommt ein Fehler in Zeile 14 :

.OpenDataSource Name:=strDatenquelle, Format:=wdOpenFormatAuto, Connection:="Provider=Microsoft.ACE.OLEDB.12.0

mit der Fehlermeldung: "Laufzeitfehler 9105, Die Zeichenfolge ist länger als 255 Zeichen". Kann mit dem so nichts anfangen, wie kann man das abstellen? Ich fürchte ich muß nochmal auf Unterstützung von eurer Seite hoffen. Gruß Mark

01.
Sub MailMergeSaveAsSingleDocs()
02.
    Dim strDatenquelle As String, i As Long, strFilenameDOCX As String, strFilenamePDF As String
03.
    ' Ausgabepfad
04.
    ' Const outputpath = "C:\Daten\output"
05.
    Const OUTPUTPATH = "C:\Users\Besitzer\Desktop\Dokument1.docx"
06.
    ' Datenquelle
07.
    strDatenquelle = "C:\Users\Besitzer\Desktop\5ter Serienbrief.xlsm"  ' "D:\Daten\datenquelle.xlsx"
08.
    'Screenupdating deaktivieren
09.
    Application.ScreenUpdating = False
10.
     With ThisDocument.MailMerge
11.
        'Dokumenttyp festlegen
12.
        .MainDocumentType = wdFormLetters
13.
        'Datenquelle öffnen
14.
        .OpenDataSource Name:=strDatenquelle, Format:=wdOpenFormatAuto, Connection:="Provider=Microsoft.ACE.OLEDB.12.0;User ID=Admin;Data Source=" & strDatenquelle & ";Mode=Read;Extended Properties=""HDR=YES;IMEX=1;"";Jet OLEDB:System database="""";Jet OLEDB:Registry Path="""";Jet OLEDB:Engine Type=37;Jet OLEDB:Database Locking Mode=0;Jet OL", SQLStatement:="SELECT * FROM `Tabelle1$`", SQLStatement1:="", SubType:=wdMergeSubTypeAccess
15.
        'Datensätze sollen in neuen Dokumenten laden
16.
        .Destination = wdSendToNewDocument
17.
        .SuppressBlankLines = True
18.
        'Führe folgende Aktionen für jeden Datensatz der Datenquelle durch.
19.
        For i = 1 To .DataSource.RecordCount
20.
            'Datenquelle auf aktuellen Datensatz beschränken
21.
            With .DataSource
22.
                .FirstRecord = i
23.
                .LastRecord = i
24.
                .ActiveRecord = i
25.
                'Dateinamen für DOCX und PDF zusammenbauen
26.
                strFilenameDOCX = Format(Date, "yyyyMMdd") & "_" & .DataFields("Vorname").Value & "_" & .DataFields("Nachname").Value & "_Test.docx"
27.
                strFilenamePDF = Format(Date, "yyyyMMdd") & "_" & .DataFields("Vorname").Value & "_" & .DataFields("Nachname").Value & "_Test.pdf"
28.
            End With
29.
            'Mailmerge für aktuellen Datensatz ausführen
30.
            .Execute Pause:=False
31.
            ' Dokument des aktuellen Datensatzes
32.
            With ActiveDocument
33.
                ' Speichern als DOCX
34.
                .SaveAs2 OUTPUTPATH & "\" & strFilenameDOCX
35.
                'Speichern als PDF
36.
                .ExportAsFixedFormat OUTPUTPATH & "\" & strFilenamePDF, wdExportFormatPDF
37.
                'Dokument schließen
38.
                .Close False
39.
            End With
40.
        Next
41.
    End With
42.
    'Screenupdating aktivieren
43.
    Application.ScreenUpdating = True
44.
End Sub
Bitte warten ..
Mitglied: cykes
03.12.2019 um 16:58 Uhr
Hi,

da hast Du meine obige Anmerkung bezüglich des Pfads ebenfalls nicht umgesetzt. Außerdem hättest Du mal die Quelle angeben können (>dieser Thread<). Natürlich kannst Du nicht einfach alles 1:1 kopieren, das muss schon Deiner Office-Version, sowie Deinen Randbedingungen angepasst werden. Vor 2,5 Jahren war das bestimmt noch eine andere Office-Version als die von Dir verwendete.
Versuch doch erstmal den Code von @colinardo zu verstehen anstatt ihn einfach nur zu kopieren und auszuführen, was in Deiner Umgebung auch schieflaufen muss.

Gruß

cykes
Bitte warten ..
Mitglied: beidermachtvongreyscull
03.12.2019, aktualisiert um 17:24 Uhr
Kürze in Zeile 7 den String in der Variable soweit wie möglich.
Ferner stelle sicher, dass der ohne Leerzeichen auskommt.

Folgendes ist ein ungeprüfter Ansatz mit dem Du Zeile 14 alternieren könntest:

01.
    .OpenDataSource bstrDataSource:="C:\tabelle.xlsm", bstrTable:="out_pub", fNeverPrompt:=True, fOpenExclusive:=True
Ich hab jetzt nicht getestet, ob RecordCount dann ebenfalls funktioniert, wenn man eine Excel-Datei nicht über einen OLE-Provider öffnet.
Bitte warten ..
Mitglied: voucher
03.12.2019, aktualisiert um 17:23 Uhr
"C:\Users\Besitzer\Desktop\5ter_Serienbrief.xlsm"
Sieht mir ganz schwer nach Leerzeichen-Problem aus, da in Zeile 14 keine Anführungszeichen um den Pfad gesetzt sind beschwert sich der Interpreter über einen String größer als 255 Zeichen, logisch .

Also Zeile 14 einfach noch weitere Anführungszeichen um den Pfad einbauen dann sollte er dort zufrieden sein:
01.
 .OpenDataSource Name:=strDatenquelle, Format:=wdOpenFormatAuto, Connection:="Provider=Microsoft.ACE.OLEDB.12.0;User ID=Admin;Data Source=""" & strDatenquelle & """;Mode=Read;Extended Properties=""HDR=YES;IMEX=1;"";Jet OLEDB:System database="""";Jet OLEDB:Registry Path="""";Jet OLEDB:Engine Type=37;Jet OLEDB:Database Locking Mode=0;Jet OL", SQLStatement:="SELECT * FROM `Tabelle1$`", SQLStatement1:="", SubType:=wdMergeSubTypeAccess
Bitte warten ..
Mitglied: mark47
04.12.2019 um 18:34 Uhr
Danke, mit dem Einbauen weiterer Anführungszeichen läuft der Prozess weiter stockt allerdings mit folgender Fehlermeldung in Zeile 14:

Laufzeitfehler 438, Objekt unterstützt diese Methode oder Eingenschaft nicht. Hat da vielleicht noch jemand eine Lösung für mich parat?

01.
.SaveAs2 OUTPUTPATH & "\" & strFilenameDOCX
Gruß Mark
Bitte warten ..
Mitglied: cykes
04.12.2019, aktualisiert 05.12.2019
Zitat von mark47:

Danke, mit dem Einbauen weiterer Anführungszeichen läuft der Prozess weiter stockt allerdings mit folgender Fehlermeldung in Zeile 14:
Laufzeitfehler 438, Objekt unterstützt diese Methode oder Eingenschaft nicht. Hat da vielleicht noch jemand eine Lösung für mich parat?

01.
.SaveAs2 OUTPUTPATH & "\" & strFilenameDOCX
Hast Du den outputpath inzwischen korrekt zugewiesen? Oder steht der nach wie vor auf "C:\Users\Besitzer\Desktop\Dokument1.docx" ?
Das geht nämlich nicht, da das einen Datei und kein Pfad ist. Also auf bspw. "C:\Users\Besitzer\Desktop" kürzen, dann sollte es klappen.

Gruß

cykes
Bitte warten ..
Mitglied: voucher
04.12.2019, aktualisiert um 22:38 Uhr
Tja das kommt vom stumpfen Copy n Paste und ohne Verstand und Beitrag lesen, zumal sich der User ja extra die Zeit genommen hat jede Zeile extra noch mit einem Kommentar zu versehen 🙄....
Bitte warten ..
Mitglied: mark47
05.12.2019 um 21:13 Uhr
Danke an alle. Habe nochmal eure Hinweise gelesen.
Ich verwende Office 2007 und die Microsoft Word x.y Object Library kann bei mir nicht aktiviert werden, weil nicht vorhanden. Kann das vielleicht
ein Hemmnis sein?
Weiterhin hatte ich den Pfad korrigiert, der Fehler erscheint aber weiterhin unverändert. Was ich jetzt auch nicht verstehe ist, das ein Serienbrief1 aktiviert wird, den ich aber nirgends anvisiere? Gruß Mark
Bitte warten ..
Mitglied: cykes
06.12.2019 um 07:44 Uhr
Zitat von mark47:

Danke an alle. Habe nochmal eure Hinweise gelesen.
Das ist schon mal ein Anfang, aber hast Du den Code und unsere Hinweise auch verstanden?
Ich verwende Office 2007 und die Microsoft Word x.y Object Library kann bei mir nicht aktiviert werden, weil nicht vorhanden. Kann das vielleicht
ein Hemmnis sein?
Dann läuft der OLE-Aufruf vermutlich schief.
Weiterhin hatte ich den Pfad korrigiert, der Fehler erscheint aber weiterhin unverändert. Was ich jetzt auch nicht verstehe ist, das ein Serienbrief1 aktiviert wird, den ich aber nirgends anvisiere?
Sei mir nicht böse, aber so wird das nichts, wir sehen hier nicht was Du wo genau tust und nur anhand der Fehlemeldungen lässt sich die Ursache aus der Ferne nicht ermitteln. Auch kennen wir den Inhalt Deiner Dateien (Datenquelle und Word-Datei nicht, inbesondere ob die Feldnamen korrekt sind und die Daten auch in den korrekten Spalten/Zeilen stehen) nicht.

Vielleicht wäre es besser, wenn Du etwas kleiner anfängst mit einer kleineren Datenquelle mit bspw. 5 Adressen, den Code neu schreibst und Dich dann langsam hochhangelst. So lernst Du etwas dabei.
Mit der aktuellen Vorgehensweise hast Du nach einiger Zeit vergessen, woran es nun genau gehangen hat und kannst nicht mehr nachvollziehen, was Du genau wo anpassen musst.

Gruß

cykes
Bitte warten ..
Ähnliche Inhalte
Microsoft Office
Word Serienbrief aus Excel starten
gelöst Frage von schubste24Microsoft Office4 Kommentare

Hallo zusammen, Ich habe da ein Problem, bei dem ich alleine leider nicht weiterkomme und um Eure Hilfe bitte. ...

Microsoft Office

Word 2013 Serienbrief erstellen: Word stürzt ab

Frage von schneerunzelMicrosoft Office3 Kommentare

Hallo zusammen, ich habe folgendes Problem: Wenn ich in Word 2013 einen Serien Brief erstellen möchte, scheitere ich immer ...

Microsoft Office

VBA Excel Makro - Serienbrief in Word aus Excel starten und anschließen einzeln speichern

gelöst Frage von abuelitoMicrosoft Office5 Kommentare

Hallo an Alle, ich möchte gerne aus Excel heraus mein Serienbrief starten und die Briefe einzeln speichern. Das bedeutet, ...

Microsoft Office

Word Serienbrief - nur letzten befüllten Datensatz laden

Frage von joe2017Microsoft Office10 Kommentare

Hallo zusammen, weiß jemand ob man in einem Word Serienbrief nur den letzten befüllten Datensatz laden kann? Ich kann ...

Neue Wissensbeiträge
Windows Installation

Windows Install ISO mit übergroßer Install.wim auf FAT32 übertragen

Tipp von Lochkartenstanzer vor 4 TagenWindows Installation11 Kommentare

Moin Kollegen, Viele von euch werden sicher aus praktischen Gründen nicht nur DVDs oder "virtuelle" CD-Laufwerke (Zalman, IODD) zum ...

Datenschutz

Gehe zurück auf Los, ziehe keine 4.000 Mark. E-Privacy (erstmal) gescheitert

Information von certifiedit.net vor 5 TagenDatenschutz

Webbrowser

Firefox 71 verfügbar mit Picture in Picture Funktion

Information von sabines vor 5 TagenWebbrowser2 Kommentare

Die neue Firefox Version 71 unterstützt, zunächst nur für Windows, Picture in Picture. Damit kann ein Video in einem ...

E-Mail
SPF beim Versenden testen
Tipp von StefanKittel vor 7 TagenE-Mail3 Kommentare

Hallo, wenn man einen SPF für einen Exchange, oder anderen Mail-Server, konfigiruert muss man das ja auch testen. Ganz ...

Heiß diskutierte Inhalte
Router & Routing
Mikrotik CRS305 4Port SFP+ Router-Switch, VMWare und Fritzbox (Netzwerk Internetproblem)
Frage von SickcultureRouter & Routing18 Kommentare

Auf der Suche nach Antworten im Netz kommt man unweigerlich auf eure Seite und die deutsche Mikrotik Blog Seite. ...

Router & Routing
Fritz VPN und WoL mit Mikrotik HEX RB750Gr2 möglich?
gelöst Frage von SionzrisRouter & Routing17 Kommentare

Hallo erstmal und danke fürs anklicken :) Ich habe folgendes Setup geplant und scheitere zurzeit an der Realisierung vom ...

Windows Server
Netzwerk Planung Homeoffice
Frage von siopoqruipWindows Server17 Kommentare

Hallo, ich plane zurzeit ein kleines Netzwerk. 5-8 User jeder mit eigenem Laptop (Lenovo T590) Windows 10 Professional Homeoffice ...

MikroTik RouterOS
Mikrotik Router empfehlenswert?
gelöst Frage von matze2090MikroTik RouterOS16 Kommentare

Hallo, ich würde gerne mir Mikrotik anschauen. Reicht dieser Router zum erstmal Test? Er Kostet ca 23€. Ich habe ...