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

Leere Seriebriefe per VBA vermeiden

Leere Seriebriefe per VBA vermeiden
13.06.2014 16:21:30
Chris

Hallo zusammen,
ich erstelle per vba Serienbriefe, was soweit ganz prima funktioniert. Leider habe ich noch das Problem, dass eine Menge leere Serienbriefe gedruckt werden, in den die Merge-Felder leer sind, weil die Zellen der Datenquelle keine Inhalte haben.
Wie kann ich Excel bzw. Word dazu überreden, beim letzten Zelleninhalt der Datenquelle keine Serienbriefe mehr zu erstellen?
Hier das Makro um die Datenquelle zu füllen:
Die mit ' markierten teile haben leider keinen Erfolg gebracht...
Sub dqfuellen()
Sheets("Testsheet").Range("Z1:AY30").Copy
Application.WindowState = xlMinimized
Workbooks.Open Filename:="H:\XX\DQ-KBV-SB.xlsx"
With ActiveSheet
.Range("A1").PasteSpecial Paste:=xlValues
'Selection.SpecialCells(xlCellTypeConstants, 23).Select
'.Range("A1", Range("Z65536").End(xlUp)).Select
'ActiveSheet.UsedRange.Select
'For Each zelle In Selection
'If zelle.Text = "" Then
'zelle.EntireRow.Delete
'ActiveSheet.UsedRange.Select
'End If
'Next
End With
ActiveWorkbook.Save
ActiveWorkbook.Close
Application.WindowState = xlMaximized
Call Serienb4
end sub
VBA für Serienbriefe:

Sub Serienb4()
Dim winword, WinDoc As Word.Document, docSerienbrief As Word.Document
Dim sFile As String, strCon As String
sFile = strWOrdvorlage
Set winword = CreateObject("Word.Application")
With winword
.Visible = True
'Vorlagedatei öffnen
Set WinDoc = .Documents.Open(sFile)
With WinDoc
With .MailMerge
'Datenquelle öffnen
.OpenDataSource Name:=strDatenQuelle, _
Connection:="Provider=Microsoft.Jet.OLEDB.4.0;" _
& "Data Source=" & strDatenQuelle & ";" _
& "Mode=Read;Extended Properties=""HDR=YES;IMEX=1;"";" _
& "Jet OLEDB:Engine ", _
SQLStatement:="SELECT * FROM `Tabelle1$`"
'Serienbrief mit allen Daten in neuem Dokument erstellen
.Destination = wdSendToNewDocument
.SuppressBlankLines = True
With .DataSource
.FirstRecord = wdDefaultFirstRecord
.LastRecord = wdDefaultLastRecord
End With
.Execute Pause:=False
Set docSerienbrief = winword.ActiveDocument
'Datenquelle wieder schliessen
.DataSource.Close
End With
'Vorlagedatei wieder schliessen
.Close savechanges:=False
End With
'Serienbrief - Drucken - Seitenvorschau
docSerienbrief.Application.WindowState = wdWindowStateMinimize
If MsgBox("Serienbrief Drucken ?", vbYesNo + vbQuestion, _
"Serienbrief-Erstellung - Drucken - Seitenvorschau") = vbYes Then
docSerienbrief.Application.WindowState = wdWindowStateMaximize
'docSerienbrief.PrintPreview
docSerienbrief.PrintOut
End If
'Serienbrief - Speichern
docSerienbrief.Application.WindowState = wdWindowStateMinimize
If MsgBox("Serienbrief Speichern ?", vbYesNo + vbQuestion, _
"Serienbrief-Erstellung-Speichern") = vbYes Then
docSerienbrief.Application.WindowState = wdWindowStateMaximize
docSerienbrief.Application.Dialogs(wdDialogFileSaveAs).Show
Else: Exit Sub
End If
'docSerienbrief.Application.WindowState = wdWindowStateMaximize
End With
winword.Quit savechanges:=False
Set docSerienbrief = Nothing
Set winword = Nothing
Set WinDoc = Nothing
End Sub
THX, Chris

4
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Leere Seriebriefe per VBA vermeiden
13.06.2014 17:58:28
Hajo_Zi
Hallo Chris,
prüfe das Strg+Ende mit dem Ende Deiner Tabelle übereinstimmt.
Oder mache in Word Bedingung Name <>""

AW: Leere Seriebriefe per VBA vermeiden
13.06.2014 18:07:20
Chris
Hallo Hajo
Leider verstehe ich deinen Vorschlag nicht ...etwS genauer bitte

AW: Leere Seriebriefe per VBA vermeiden
13.06.2014 18:08:40
Hajo_Zi
tasten STRg+Ende Drücken
Word bist Du mehr der Fachmann als ich, Du hast den Serienbrief ja erstellt.
Gruß Hajo

AW: Leere Seriebriefe per VBA vermeiden
14.06.2014 10:57:27
Nepumuk
Hallo,
du kannst doch mit eine ganz einfachen Regel im Serienbrief selbst (Reiter Sendungen - Regeln - Datensatz überspringen wenn...) die leeren Zellen rausfiltern.
Gruß
Nepumuk

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige