Office: (Office 2013) Word, Excel Serienbrief Makro in einzelne Datein

Helfe beim Thema Word, Excel Serienbrief Makro in einzelne Datein in Microsoft Excel Hilfe um das Problem gemeinsam zu lösen; Liebes Office Forum. Ich arbeite täglich mit einer Excel Datenbank und mit einem damit verbundenen Word-Serienbrief. Zusätzlich habe ich ein Makro... Dieses Thema im Forum "Microsoft Excel Hilfe" wurde erstellt von Mashtag, 17. Dezember 2016.

  1. Word, Excel Serienbrief Makro in einzelne Datein


    Liebes Office Forum.
    Ich arbeite täglich mit einer Excel Datenbank und mit einem damit verbundenen Word-Serienbrief. Zusätzlich habe ich ein Makro angepasst um, die einzelnen Serienbriefeintragungen als unabhängige Word-Dokumente speichern zu können. Hierfür muss jedoch im Menü „Sendungen“ --> „Empfängerliste bearbeiten“ der richtige Datensatz gewählt werden.
    Da ich täglich damit arbeite und neuerdings des Öfteren nur einzelne Datensätze in ein unabhängiges Word-Dokument gespeichert werden müssen, suche ich hierfür eine bessere Lösung dafür.
    Perfekt wäre wenn man in der Excel-Datenbank den Datensatz der activeCell mittels Knopfdruck direkt an das Word Serienbrief Makro übergeben werden kann, sodass "Sendungen" --> „Empfängerliste bearbeiten“ übersprungen werden kann. Es wäre nämlich dann nicht einmal mehr erforderlich die Word Datei im Vordergrund aufzurufen.

    Die Lösung ist eine Makro in Excel und sollte also ungefähr so aussehen.
    1) Öffne Word „Serienbrief Vorlage“
    2) Führe Word Makro „Serienbrief“ aus mit Datensatz von ActiveCell Excel
    3) Close Word nicht speichern
    Punkt 2 ist das Problem. Word Makro sieht momentan so aus:

    Code:
    Irgendwie müssen hier die Schleifen entfernt und der Datensatz von Excel activeCell eingebaut werden. Leider verstehe ich den Code nicht gut genug um es anpassen zu können. Kann mir dabei vielleicht jemand helfen?

    M.f.G
    Mashtag

    :)
     
  2. Weiß jemand wie man den Datensatz von der aktiven Zelle einer Excel Datei, in das Dialogfeld Empfängerliste bearbeiten, also wdDialogMailMergeRecipients von Word einfügt?

    Ich denke es sollte irgendwie so aussehen, doch leider weiß ich nicht weiter.
    ActiveDocument.MailMerge.DataSource.QueryString
    SELECT * FROM mytable WHERE CurrentStatus = 'Active'
     
  3. Da Du in Excel die Zeilennummer der Zelle kannst Du daraus die Datensatznummer ermitteln und in Word nur diesen Serienbrief ausgeben lassen.

    Alternativ könntest Du den einen Satz als CSV ausgeben und den Serienbrief damit verbinden.
     
    haklesoft, 20. Dezember 2016
    #3
  4. Word, Excel Serienbrief Makro in einzelne Datein

    Hallo Mashtag,

    Beschreibungen Deinerseits sind zwar hilfreich, aber ohne praktische Dateien doch sehr theoretisch. Ich habe es mir abgewöhnt, aktiv zu werden, wenn ich auch noch die Demo-Dateien erstelllen muß, um Deine Wünsche zu testen.
    Ein bischen mehr Zuarbeit vom Fragesteller erwarte ich einfach, weil wir sonst sicher wieder am Thema vorbeireden.

    Gruß von Luschi
    aus klein-Paris
     
  5. Hi Luschi,
    es tut mir leid das ich gleich nicht von Anfang an eine Testdatei erzeugt habe. Im Anhang befindet sich die Testdatei.

    In meiner Datei gilt immer.
    Zeilennummer = Rechnungsnummer + 1000
    Die Rechnungsnummer steht in der ersten Spalte.

    Über diesen Zusammenhang sollte das ermitteln der Datensatznummer leicht sein.

    Der Code sieht momentan so aus:

    Code:
     
  6. Hallo Mashtag,

    ich bin gerade am Thema dran, brauche aber noch ein bischen.

    Gruß von Luschi
    aus klein-Paris
     
  7. Hallo Mashtag,

    hier mal mein 1. Versuch. Die Dokumentenvorlage A.docm hat keine Datenverküpfung zur Datenquelle S.xlsm.
    Das passsiert im Excel-Vba-Code vom S.xlsm für das neue Word-Dokument .auf Basis von A.docm.
    In S.xlsm gibt es ein Tabellenblatt 'Einstellungen' zum Hinterlegen der Dateipfade.

    Gruß von Luschi
    aus klein-Paris
     
  8. Word, Excel Serienbrief Makro in einzelne Datein

    Wow das ist viel mehr als ich erwartet habe.
    Ich verstehe auch nicht wie du das gemacht hast, dass sich die Word Datei so schnell öffnet und sich schreibt. Bei mir dauerte das erstellen der Word Datei nachdem ich den Empfänger ausgewählt hatte immer sehr lange.
    Bei deiner Version geht das so schnell im Hintergrund, dass ich erst nach 20 mal drücken auf eine Rechnungsnummer verstanden habe, dass da schon 21 Word Dateien im Hintergrund erzeugt wurden.

    Der Quellcode ist leider jetzt so lange, dass ich ihn noch nicht wirklich verstehe. Aber das schwierigste, also das Daten übertragen von Word nach Excel funktioniert richtig gut.

    Es muss jedoch noch einiges geändert werden, wie zum Beispiel muss sich das erzeugte Word Dokument automatisch in einen bestimmten Pfad speichern. Ich habe eigentlich gedacht, dass ich dies mit dem Makro den ich bis jetzt verwendet habe bewerkstellige. Jedoch erzeugt deine Version (Wenn ich auch noch nicht verstehe wie), schon eine Eigenständige Datei, also kann ich den bis jetzt verwenden Makro nicht benutzen.
    Das speicher sollte ich jedoch alleine hinbekommen.

    Das größere Problem das noch besteht ist, dass hier direkt nach dem Drücken auf eine Rechnungsnummer die Datei erzeugt wird. Dies habe ich vielleicht schlecht formuliert. Ziel soll sein, dass ich auf einen Button drücke, welche ich in den Menü einbinden werden. Dieser erzeugt eine Datei mit dem Datensatz der geraden aktiven Zeile.

    Ich werde mich mal heute intensive mit dem Makros auseinandersetzen. Brauch ich dafür wirklich alle Module die du mir geschickt hast?
    Das sieht nämlich auf den ersten Blick sehr kompliziert aus.

    Viele, vielen Dank ich werde mal versuchen da selber etwas "herumzupfuschen", fürchte aber das ich in naher Zukunft wieder eine Frage haben werde.
     
  9. Hallo Mashtag,

    die Geschwindigkeit kommt dadurch zustande, daß im Verbindungsstring (Connection) bereits der Select-Filter eingebaut ist:
    xSql = "SELECT * FROM [2017$] WHERE [Rechnungs_Nr] = '" & RechNr & "';"
    Damit wird dem Serienbrief-Hauptdokument nur 1 einziger Datensatz mitgegeben und nicht alle (1008).
    Außerdem habe ich ja den moderneren Datenzugriffs-Treiber genommen, der für Office 2007 neu von M$ entwickelt wurde und auch
    ein ganzes Stück schneller ist als der alte ODBC-Treiber.
    Ich bastle Dir morgen in der Multifunktionsleiste (Ribbon) ein Button rein, mit dem erst die SB-Erstellung gestartet wird.
    Du kannst natürlich auch Fragen zum Vba-Cede stellen und weitere Wünsche äußern.

    Gruß von Luschi
    aus klein-Paris
     
  10. Also so wie ich das bis jetzt verstehe hast du alles mit einem Excel Makro gemacht. Die vielen Makros in der Word Datei hast du wohl unabsichtlich hinzugefügt.

    So wie ich das verstehe ist dies das Codestück wo die Magie passiert.

    Code:
    Hier wird vom Excel Makro direkt eine neue Word Datei mit dem Datensatz erzeugt.

    Und genau hier ist das Problem. So wie ich das verstehe kann ich doch nicht von einem Excel Makro eine Word Datei in einen Pfad unter einen bestimmten Variablen Namen speichern. Der Variable Name soll ein Teil des Datensatzes sein.
    Ich habe nun Versucht einen Makro in Word zu schreiben, welcher beim öffnen auslöst. Hat jedoch nicht funktioniert. Ich denke ich muss einen speicher Makro in Word schreiben und diesen von Excel Makro aufrufen.

    Kannst du mir bestätigen, dass alle Makros die in der Word Datei sind nicht benötigt werden?
     
  11. Hallo Mashtag,

    richtig, die gesammte Steuerung erfolgt über das Excel-Makro

    Set wdDoc = wdApp.Documents.Add(...)
    Damit wird auf der Grundlage der Vorlage 'A.docm' ein neues Serienbrieb-Hauptdokument erstellt. Hier stehen die {MergeField-...}-Datenfelder und der sonstige Text drin.
    'wdDoc' ist dabei eine Objektvariable vom Typ Word-Datei.

    wdDoc.MailMerge.MainDocumentType = wdFormLetters
    macht daraus ein Serienbriefhauptdokument

    wdDoc.MailMerge.OpenDataSource ...
    stellt jetzt die Verbindung zur Datenquelle (S.xlsm) her

    With wdDoc.MailMerge
    ...
    End With
    startet die eigentliche Serienbrieferstellung, also in unserem Fall das einen SB-Dokument, das man dann drucken, aber auch abspeichern kann.

    Natürlich kann man auch das Drucken/Abspeichern vom Excel-Makro anstupsen lassen einschließlich Bildung des Dateinamens aus den Adreß-Angaben des Empfängers einschließlich Datum/Uhrzeit. Man müßte nur noch den Speicherpfad vorher festlegen aber auch per Vba anlegen lassen.

    Gruß von Luschi
    aus klein-Paris
     
  12. Hi,

    Ich hab mir mal erlaubt an dem Projekt weiterzupfuschen, leider bin ich nicht sehr weit gekommen.
    Das speichern hat gut funktioniert, bis ich versucht habe den importierten Datensatz als Speichername vorzugeben.
    Für diejenigen die sich das File nicht herunterladen wollen hier der Code mit dem Problem.

    Code:
    Hat jemand eine Lösung für das Problem?

    M.f.G
    Mashtag
     
  13. Word, Excel Serienbrief Makro in einzelne Datein

    Hallo Mashtag,

    hier mal mein 2. Versuch- habe das speichern als *.docx und *.pdf gelöst.

    Gruß von Luschi
    aus klein-Paris
     
  14. Hi,

    Ich wollte auch, dass sich gewisse Zellen Rot färben, nachdem das Programm durchgelaufen ist. Dies hab ich geschafft.
    Desweiteren (das ist das letze Puzzlestück) will ich haben, dass das in Word entstandene Dokument ausgeduckt wird, jedoch nur wenn zuvor eine Abfrage bestätigt wird. Sonst soll nur die PDF und Word Datei erzeugt werden.

    Die Abfrage mit dem Drucken habe ich geschafft. Leider druckt er mir die Falsche Datei, also die Excel Datei.
    Ich hab den Code wohl an der falschen Stelle eingefügt. Wobei ich das nicht ganz verstehe.

    Hier das Codestück um das es geht.

    Code:
    Ich denke mit
    With wdDoc.MailMerge.DataSource
    verschaffst du dir Zugang zur Word Datei. Diese ist dann also Active.
    So wie ich das verstehe macht also alles Word solange ich innerhalb von End With bin.
    Es scheint jedoch falsch zu sein.

    Ich fürchte ich brauch ein weiteres mal deine Hilfe.


    M.f.G
    Mashtag
     
  15. Hallo Mashtag,

    hier mal Versuch Nr. 3.
    habe die Drucken-Abfrage an der für mich richtigen Stelle eingegebaut (nach dem speichern), wohl aber vergessen, die Drucker-Einstellungen wieder zu aktivieren.

    Gruß von Luschi
    aus klein-Paris
     
Thema:

Word, Excel Serienbrief Makro in einzelne Datein

Die Seite wird geladen...
  1. Word, Excel Serienbrief Makro in einzelne Datein - Similar Threads - Word Excel Serienbrief

  2. Word (2016), Seriendruck mit vorhandener Datenquell-Liste in Excel

    in Microsoft Word Hilfe
    Word (2016), Seriendruck mit vorhandener Datenquell-Liste in Excel: Hallo, ich würde mich sehr über Hilfe freuen, Problem: In der Serienbriefvorschau erscheint das Seriendruckfeld "Datum" unaufgefordert mit der Angabe der Uhrzeit. Die Uhrzeit will ich gar...
  3. Excel - Word - Excel (Datenbankabfrage funktioniert nicht)

    in Microsoft Excel Hilfe
    Excel - Word - Excel (Datenbankabfrage funktioniert nicht): Hallo zusammen. Ich suche nun schon länger nach einer Lösung für mein Problem. Leider konnte mir weder Big Brother Google noch die SuFu helfen. Folgende Problematik: - In einer...
  4. Excel-Word-Serienbrief - Excel Datei automatisch aktualisieren

    in Microsoft Excel Hilfe
    Excel-Word-Serienbrief - Excel Datei automatisch aktualisieren: Hallo liebe Helferlein! Habe folgendes Problem: Ich habe eine Serienbriefquelldatei in Excel erstellt, die eine Funktion enthält, die mir vom aktuellen Datum aus gesehen den übernächten...
  5. Etiketten über Serienbrief in Word - Inhalt aus Excel mit mehreren Sheets?

    in Microsoft Word Hilfe
    Etiketten über Serienbrief in Word - Inhalt aus Excel mit mehreren Sheets?: Hallo zusammen, Arbeitsauftrag: Etiketten zum Kennzeichnen des Lagerbestandes erstellen (in Word). Klappt alles soweit, z.Z. sind aber alle unterschiedlichen Rubriken des Lagerbestandes in...
  6. Serienbrief mit Excel Tabelle

    in Microsoft Word Hilfe
    Serienbrief mit Excel Tabelle: Hallo Leute, ich wollte mich heute ein bisschen in das Thema Serienbriefe einarbeiten, da ich das als Office Support können muss ;) Die Anleitung in diesem Tutorial wollte ich befolgen:...
  7. Serienbrief mit Daten aus einer Exceltabell

    in Microsoft Excel Hilfe
    Serienbrief mit Daten aus einer Exceltabell: Ich möchte aus einer Exceltabelle Zahlen und Daten in einen Serienbrief übernehmen. beim Einlesen der Zahlen mit Kommastelle zum Beispiel 2,50 übernimmt das Worddukument die Zahl aber als...
  8. Serienbrief Word/Excel Filter wie speichern?

    in Microsoft Word Hilfe
    Serienbrief Word/Excel Filter wie speichern?: Hallo Word und Excel Spezialisten! Ich habe in Excel 2003 eine Tabelle mit Namen, Adressen und weiteren Feldern. In Word 2003 nutze ich nun den Serienbriefassistenten und als Datenquelle die...
  1. Diese Seite verwendet Cookies, um Inhalte zu personalisieren, diese deiner Erfahrung anzupassen und dich nach der Registrierung angemeldet zu halten.
    Auf dieser Website werden Cookies für die Zugriffsanalyse und Anzeigenmessung verwendet.
    Wenn du dich weiterhin auf dieser Seite aufhältst, akzeptierst du unseren Einsatz von Cookies.
    Information ausblenden