Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1676to1680
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

Serienbrief mit verschiedenen Tabellenblättern

Serienbrief mit verschiedenen Tabellenblättern
26.02.2019 11:21:07
serienbrief-ahnungslos
Hallo Zusammen,
ich habe eine Frage zum Export von Daten in einen Serienbrief. Die Daten liegen in verschiedenen Tabellenblättern. Ca 500 Teilnehmende nehmen jeweils an ca. 20 Veranstaltungen teil - aus einem Gesamtangebot von etwa 300 Veranstaltungen, die 28 feststehenden Modulen zugeordnet sind. Diese Veranstaltungen sind fortlaufend nummeriert (M1, M2, ...).
Tabellenblatt 1 enthält die Personendaten und - in Spalten angeordnet - die ca 20 Module (M1, M7, M45, ...), die der jeweilige Teilnehmende besucht hat.
Tabellenblatt 2 listet die Veranstaltungen auf inklusive Datum, Veranstaltungstitel und dem offiziellen Modulnamen, dem die Veranstaltung zugeordnet ist. Tabellenblatt 3 enthält die 28 offiziellen Module.
Jeder Teilnehmende soll ein Zertifikat erhalten, auf dem die Teilnahme an den ca. 20 Veranstaltungen bescheinigt wird. Aber nicht nur mit "M1, M2, M3, ...", sondern mit den Angaben aus Tabellenblatt 2 (Datum, Veranstaltungsname/ Inhalt, offizieller Modultitel).
Eine Beispieldatei habe ich angehängt: https://www.herber.de/bbs/user/127938.xlsx
Ist das möglich per Serienbrief?
Ich sehe gerade den Wald vor lauter Bäumen nicht und wäre für Anregungen dankbar. Ich hoffe allerdings ohne VBA, da ich absolut ahnungslos bin!
Danke und einen schönen Tag!

7
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Serienbrief mit verschiedenen Tabellenblättern
27.02.2019 10:02:47
Rob
Hi, möchtest Du das Zertifikat als ein Worddokument haben oder als pdf, etc?
AW: Serienbrief mit verschiedenen Tabellenblättern
28.02.2019 17:28:25
Serienbrief--ahnungslos
Als Word wäre praktisch, PDF aber auch möglich!
AW: Serienbrief mit verschiedenen Tabellenblättern
01.03.2019 23:24:10
Rob
Ich könnte Dir ein Makro programmieren, das auf ein Word-Template mit Textmarken zugreift, die dann die Inhalte aus der Excel-Tabelle übernehmen. Du müsstest Dir lediglich das Word-Template mit den Textmarken selber stricken, weil hier ein Upload von diesem Format nicht möglich ist.
AW: Serienbrief mit verschiedenen Tabellenblättern
01.03.2019 23:40:12
Rob
Die Textmarken im Word-Dokument müssen genauso heißen wie in dem Code, also z.B. .Bookmarks("Vorname") etc. Zudem musst Du noch den Speicherpfad von dem Word-Dokument anpassen. Müsste man natürlich noch alles dynamisch gestalten aber schau mal, ob Dir das so ungefähr vorgestellt hast:

Option Explicit
Sub Serienbrief()
'Dim WordApp As Word.Application
'Dim Template As Word.Document
Dim WordApp As Object 'LATE BINDING
Dim Template As Object 'LATE BINDING
'Set WordApp = New Word.Application
Set WordApp = CreateObject("Word.Application") 'LATE BINDING
WordApp.Documents.Open "C:\Users\admin\Documents\VBA\Serienbrief-Ahnungslos.docx"
WordApp.Visible = True
Set Template = WordApp.Documents("Serienbrief-Ahnungslos.docx")
'TEXTMARKEN INHALT AUS DER EXCEL-DATEI ZUWEISEN
With Template
.Bookmarks("Vorname").Range.Text = Sheets(1).Range("B2").Value
.Bookmarks("Datum").Range.Text = CDate(Sheets(2).Range("D2"))
.Bookmarks("Name").Range.Text = Sheets(1).Range("A2").Value
.Bookmarks("Modultitel").Range.Text = Sheets(2).Range("B2").Value
.Bookmarks("Modulinhalt").Range.Text = Sheets(2).Range("C2").Value
End With
'Template.Close SaveChanges:=False
'WordApp.Visible = False
End Sub

Anzeige
AW: Serienbrief mit verschiedenen Tabellenblättern
02.03.2019 00:41:05
Rob
Hier nochmal in dynamisch. Hatte gerade Bock drauf. Du musst nur noch die Speicherpfade anpassen.

Option Explicit
Sub Serienbrief()
'Dim WordApp As Word.Application
'Dim Template As Word.Document
Dim WordApp As Object 'LATE BINDING
Dim Template As Object 'LATE BINDING
Dim lastRow, i, x, findRow As Integer
Dim r, findModul, findRange As Range
Set findRange = Sheets(2).Range("A:A")
'FÜR DIE FORTLAUFENDE NUMMERIERUNG DER SERIENBRIEFE
x = 1
lastRow = Sheets(1).Cells(Sheets(1).Rows.Count, 1).End(xlUp).Row
'Set WordApp = New Word.Application
Set WordApp = CreateObject("Word.Application") 'LATE BINDING
For i = 2 To lastRow
For Each r In Range(Sheets(1).Cells(i, 7), Sheets(1).Cells(i, Sheets(1).UsedRange.Columns. _
Count - 6))
If IsEmpty(r) = False Then
WordApp.Documents.Open "C:\Users\admin\Documents\VBA\Serienbrief-Ahnungslos.docx"
WordApp.Visible = True
Set Template = WordApp.Documents("Serienbrief-Ahnungslos.docx")
findRow = findRange.find(r, LookAt:=xlWhole).Row
'TEXTMARKEN INHALT AUS DER EXCEL-DATEI ZUWEISEN
With Template
.Bookmarks("Vorname").Range.Text = Sheets(1).Cells(i, 2).Value
.Bookmarks("Datum").Range.Text = CDate(Sheets(2).Cells(findRow, 4).Value)
.Bookmarks("Name").Range.Text = Sheets(1).Cells(i, 1).Value
.Bookmarks("Modultitel").Range.Text = Sheets(2).Cells(findRow, 2).Value
.Bookmarks("Modulinhalt").Range.Text = Sheets(2).Cells(findRow, 3).Value
End With
Template.SaveAs2 "C:\Users\admin\Desktop\" & "Serienbrief" & x & ".docx"
x = x + 1
Template.Close SaveChanges:=False
WordApp.Visible = False
End If
Next r
Next i
End Sub

Anzeige
AW: Serienbrief mit verschiedenen Tabellenblättern
02.03.2019 00:45:28
Rob
Mir ist gerade noch ein Fehler aufgefallen. In dieser Zeile "-6" bitte löschen:
For Each r In Range(Sheets(1).Cells(i, 7), Sheets(1).Cells(i, Sheets(1).UsedRange.Columns. _
Count - 6))

AW: Serienbrief mit verschiedenen Tabellenblättern
02.03.2019 07:59:30
Serienbrief--ahnungslos
Wow, danke!!!! Ich schaue es mir in Ruhe an und melde mich. Aber schon Mal vielen vielen Dank!

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige